1
resposta

[Projeto] Desafio: Hora da Pratica

// Manual Geral (Pai)
public class Carro {
private String nomeModelo;
private double precoAno1, precoAno2, precoAno3;

public void setModelo(String nome) { this.nomeModelo = nome; }
public void setPrecos(double p1, double p2, double p3) {
    this.precoAno1 = p1; this.precoAno2 = p2; this.precoAno3 = p3;
}

public void exibirInformacoes() {
    System.out.println("Modelo: " + nomeModelo);
    System.out.println("Menor Preço: " + calcularMenorPreco());
    System.out.println("Maior Preço: " + calcularMaiorPreco());
}

private double calcularMenorPreco() {
    return Math.min(precoAno1, Math.min(precoAno2, precoAno3));
}
private double calcularMaiorPreco() {
    return Math.max(precoAno1, Math.max(precoAno2, precoAno3));
}
}

// Manual Específico (Filho)
public class ModeloCarro extends Carro {
}


//REINO ANIMAL @OVERRIDE
public class Animal {
public void emitirSom() {
    System.out.println("Som de animal!");
}
}

public class Cachorro extends Animal {
@Override
public void emitirSom() {
    System.out.println("Au Au!");
}
public void abanarRabo() {
    System.out.println("Rabo abanando...");
}
}

public class Gato extends Animal {
@Override
public void emitirSom() {
    System.out.println("Miau!");
}
public void arranharMoveis() {
    System.out.println("Arranhando o sofá...");
}
}


//CONTA BANCÁRIA COM TARIFAS
public class ContaBancaria {
protected double saldo;

public void depositar(double valor) { saldo += valor; }
public void sacar(double valor) { saldo -= valor; }
public void consultarSaldo() { System.out.println("Saldo: " + saldo); }
}

public class ContaCorrente extends ContaBancaria {
public void cobrarTarifaMensal() {
    saldo -= 20.0;
    System.out.println("Tarifa de R$ 20 cobrada.");
}
}


//LÓGICA DE NÚMEROS PRIMOS
public class NumerosPrimos {
public boolean verificarPrimalidade(int numero) {
    if (numero <= 1) return false;
    for (int i = 2; i * i <= numero; i++) {
        if (numero % i == 0) return false;
    }
    return true;
}

public void listarPrimos(int limite) {
    for (int i = 2; i <= limite; i++) {
        if (verificarPrimalidade(i)) System.out.print(i + " ");
    }
}
}

public class VerificadorPrimo extends NumerosPrimos {
public void verificarSeEhPrimo(int n) {
    if (verificarPrimalidade(n)) System.out.println(n + " é primo.");
    else System.out.println(n + " não é primo.");
}
}
1 resposta

Olá, Giulia! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de herança para organizar classes com Java, utilizou muito bem o @Override para personalizar comportamentos em subclasses e ainda compreendeu a importância do encapsulamento para proteger os atributos e estruturar melhor os dados.

Uma dica interessante para o futuro é criar métodos construtores para inicializar os objetos já com valores definidos. Assim:

public class Carro {
    private String nomeModelo;
    private double precoAno1, precoAno2, precoAno3;

    // Construtor
    public Carro(String nome, double p1, double p2, double p3) {
        this.nomeModelo = nome;
        this.precoAno1 = p1;
        this.precoAno2 = p2;
        this.precoAno3 = p3;
    }

    public void exibirInformacoes() {
        System.out.println("Modelo: " + nomeModelo);
        System.out.println("Menor Preço: " + calcularMenorPreco());
        System.out.println("Maior Preço: " + calcularMaiorPreco());
    }

    private double calcularMenorPreco() {
        return Math.min(precoAno1, Math.min(precoAno2, precoAno3));
    }

    private double calcularMaiorPreco() {
        return Math.max(precoAno1, Math.max(precoAno2, precoAno3));
    }
}

Isso faz com que os objetos sejam criados de forma mais prática e segura, evitando a necessidade de múltiplos métodos set logo após a instanciação.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!