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.
// Classe Carro
public class Carro {
private String modelo;
private double precoAno1;
private double precoAno2;
private double precoAno3;
public void definirModelo(String modelo) {
this.modelo = modelo;
}
public void definirPrecos(double precoAno1, double precoAno2, double precoAno3) {
this.precoAno1 = precoAno1;
this.precoAno2 = precoAno2;
this.precoAno3 = precoAno3;
}
public void exibirInfo() {
System.out.println("Modelo: " + modelo);
System.out.println("Preço Ano 1: " + precoAno1);
System.out.println("Preço Ano 2: " + precoAno2);
System.out.println("Preço Ano 3: " + precoAno3);
System.out.println("Menor Preço: " + calcularMenorPreco());
System.out.println("Maior Preço: " + calcularMaiorPreco());
}
private double calcularMenorPreco() {
double menorPreco = precoAno1;
if (precoAno2 < menorPreco) {
menorPreco = precoAno2;
}
if (precoAno3 < menorPreco) {
menorPreco = precoAno3;
}
return menorPreco;
}
private double calcularMaiorPreco() {
double maiorPreco = precoAno1;
if (precoAno2 > maiorPreco) {
maiorPreco = precoAno2;
}
if (precoAno3 > maiorPreco) {
maiorPreco = precoAno3;
}
return maiorPreco;
}
}
// Subclasse ModeloCarro
public class ModeloCarro extends Carro {
// Pode adicionar propriedades específicas do modelo se necessário
}
// Classe de Teste
public class TesteCarro {
public static void main(String[] args) {
ModeloCarro meuCarro = new ModeloCarro();
meuCarro.definirModelo("Sedan");
meuCarro.definirPrecos(30000, 32000, 35000);
meuCarro.exibirInfo();
}
}
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.
// Classe Animal
public class Animal {
public void emitirSom() {
System.out.println("Som do animal");
}
}
// Subclasse Cachorro
public class Cachorro extends Animal {
@Override
public void emitirSom() {
System.out.println("Au Au");
}
public void abanarRabo() {
System.out.println("Cachorro abanando o rabo");
}
}
// Subclasse Gato
public class Gato extends Animal {
@Override
public void emitirSom() {
System.out.println("Miau");
}
public void arranharMoveis() {
System.out.println("Gato arranhando móveis");
}
}
// Classe de Teste
public class TesteAnimais {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.emitirSom();
cachorro.abanarRabo();
Gato gato = new Gato();
gato.emitirSom();
gato.arranharMoveis();
}
}