1 - Crie uma classe Carro com métodos para representar um modelo específico ao longo de três anos. Implemente métodos para definir o nome do modelo, os preços médios para cada ano, e calcular e exibir o menor e o maior preço. Adicione uma subclasse ModeloCarro para criar instâncias específicas, utilizando-a na classe principal para definir preços e mostrar informações.
package desafios.carro;
public abstract class Carro {
private String modelo;
private double precoAno1;
private double precoAno2;
private double precoAno3;
public void setDefinirModelo(String modelo) {
this.modelo = modelo;
}
public void setDefinirPrecos(double precoAno1, double precoAno2, double precoAno3) {
this.precoAno1 = precoAno1;
this.precoAno2 = precoAno2;
this.precoAno3 = precoAno3;
}
private double calcularMenorPreco() {
double menorPreco = precoAno1;
if (precoAno2 < precoAno1) {
menorPreco = precoAno2;
}
if (precoAno3 < precoAno2) {
menorPreco = precoAno3;
}
return menorPreco;
}
public void exibirInfo() {
System.out.println("Modelo: " + modelo);
System.out.printf("Menor preço: %.2f\n", calcularMenorPreco());
}
}
package desafios.carro;
public class ModeloCarro extends Carro {
private String cor;
private String tipoMotor;
public void setCor(String cor) {
this.cor = cor;
}
public void setTipoMotor(String tipoMotor) {
this.tipoMotor = tipoMotor;
}
@Override
public void exibirInfo() {
super.exibirInfo();
System.out.println("Cor: " + cor);
System.out.println("Tipo do Motor: " + tipoMotor);
}
}
package desafios.carro;
public class TesteCarros {
public static void main(String[] args) {
ModeloCarro carro = new ModeloCarro();
carro.setDefinirModelo("Sedan");
carro.setDefinirPrecos(30000, 32000, 35000);
carro.setCor("Preto");
carro.setTipoMotor("3.5 V6");
carro.exibirInfo();
}
}
2 - Crie uma classe Animal com um método emitirSom(). Em seguida, crie duas subclasses: Cachorro e Gato, que herdam da classe Animal. Adicione o método emitirSom() nas subclasses, utilizando a anotação @Override para indicar que estão sobrescrevendo o método. Além disso, adicione métodos específicos para cada subclasse, como abanarRabo() para o Cachorro e arranharMoveis() para o Gato.
package desafios.animal;
public class Animal {
public void emitirSom() {
System.out.println("Emitindo som");
}
}
package desafios.animal;
public class Cachorro extends Animal {
@Override
public void emitirSom() {
System.out.println("Au au au");
}
public void abanarRabo() {
System.out.println("Abanando rabo");
}
}
package desafios.animal;
public class Gato extends Animal {
@Override
public void emitirSom() {
System.out.println("Miau Miau Miau");
}
public void arranharMoveis() {
System.out.println("Arranhando móveis");
}
}
package desafios.animal;
public class TesteAnimais {
public static void main(String[] args) {
Gato laranjinha = new Gato();
laranjinha.emitirSom();
laranjinha.arranharMoveis();
Cachorro caramelo = new Cachorro();
caramelo.emitirSom();
caramelo.abanarRabo();
}
}