1
resposta

Desafio: Hora da prática

//01

public class carro {
    private String nomeeModelo;
    private double  precoAno1, precoAno2, precoAno3;

    public carro(String nome, double p1, double p2, double p3){
        this.nomeeModelo = nome;
        this.precoAno1 = p1;
        this.precoAno2 = p2;
        this.precoAno3 = p3;
    }
    public void exibirInformacoes(){
        System.out.println("Modelo: " + nomeeModelo);
        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));
    }
}
//02


public class animal {

    public void emitirSom() {

        System.out.println("Som de animal");

    }
}
public class cachorro extends animal {
    @java.lang.Override
    public void emitirSom() {
        System.out.println("Au Au!");
    }
    public void abanarRabo(){
        System.out.println("Rabo abanando...");


    }
}
public class gato extends animal {
    @java.lang.Override
    public void emitirSom() {
        System.out.println("miau");
    }
    public void arranharMoveis(){
        System.out.println("Arranhando o sofá...");
    }
}

//03

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 20 reais cobrada!");

        }


    }
//04 logica de primos

    public class numerosPrimos{

        public boolean verificarPrimos(int numero){
            if (numero <1 ) return false;
            for (int i = 2; i <= numero; i++){
                if (numero % i == 0) return false;
            } return true;
        }

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


        }

   public class verificarPrimos extends numerosPrimos{
            public void verificarSeEhPrimo(int n){
                if(verificarPrimos(n)) System.out.println(n + "é primo");
                else System.out.println(n + "não é primo");


            }


   }


    }

}

1 resposta

Oi, Leonardo! Tudo bem?

Parabéns por fazer o desafio e compartilhar o código. Deu pra ver que você entendeu bem herança e OO, a estrutura geral ficou boa.

No método de números primos tem um pequeno bug: você está verificando até o próprio número, e todo número é divisível por ele mesmo, então sempre vai dar falso. É só mudar o laço pra ir até antes do número.

public boolean verificarPrimos(int numero) {
    if (numero <= 1) return false;
    for (int i = 2; i < numero; i++) {
        if (numero % i == 0) return false;
    } 
    return true;
}

E sobre as classes, evita colocar uma dentro da outra. O ideal é cada classe no seu próprio arquivo pra deixar tudo mais organizado e fácil de manter.

No geral, você tá no caminho certo.

Bons estudos!

Sucesso

Imagem da comunidade