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 br.com.exercicio.carro.model;
public class Carro {
protected String modelo;
protected int ano;
protected String cor;
private double precoAno1;
private double precoAno2;
private double precoAno3;
// métodos
public double obterPrecoMedio(){
return (double) (precoAno1 + precoAno2 + precoAno3) / 3.;
}
public void avaliarPrecos(){
double menor = Math.min(precoAno1, Math.min(precoAno2, precoAno3));
double maior = Math.max(precoAno1, Math.max(precoAno2, precoAno3));
String analisePrecos = """
Os preços nos últimos três anos são: R$%.2f, R$%.2f e R$%.2f.
O menor valor é R$%.2f.
O maior valor é R$%.2f.
""".formatted(precoAno1, precoAno2, precoAno3, menor, maior);
System.out.println(analisePrecos);
}
// getters e setters
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public double getPrecoAno1() {
return precoAno1;
}
public void setPrecoAno1(double precoAno1) {
this.precoAno1 = precoAno1;
}
public double getPrecoAno2() {
return precoAno2;
}
public void setPrecoAno2(double precoAno2) {
this.precoAno2 = precoAno2;
}
public double getPrecoAno3() {
return precoAno3;
}
public void setPrecoAno3(double precoAno3) {
this.precoAno3 = precoAno3;
}
public void exibirDetalhes() {
}
}
package br.com.exercicio.carro.model;
public class ModeloCarro extends Carro{
private String tipo;
private String tipoCombustivel;
private String tipoTransmissao;
// métodos
public void exibirDetalhes(){
String detalhes = """
_________________________
Modelo: %s
Tipo: %s
Ano: %d
Cor: %s
Combustível: %s
Transmissão: %s
_________________________
""".formatted(modelo, tipo, ano, cor, tipoCombustivel, tipoTransmissao);
System.out.println(detalhes);
}
// getters e setters
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getTipoCombustivel() {
return tipoCombustivel;
}
public void setTipoCombustivel(String tipoCombustivel) {
this.tipoCombustivel = tipoCombustivel;
}
public String getTipoTransmissao() {
return tipoTransmissao;
}
public void setTipoTransmissao(String tipoTransmissao) {
this.tipoTransmissao = tipoTransmissao;
}
}
import br.com.exercicio.carro.model.Carro;
import br.com.exercicio.carro.model.ModeloCarro;
public class Principal {
public static void main(String[] args) {
ModeloCarro carro1 = new ModeloCarro();
carro1.setModelo("Onix");
carro1.setAno(2023);
carro1.setCor("Prata");
carro1.setPrecoAno1(75500.00);
carro1.setPrecoAno2(77000.00);
carro1.setPrecoAno3(72500.00);
carro1.setTipo("Hatch");
carro1.setTipoCombustivel("Gasolina");
carro1.setTipoTransmissao("Manual");
carro1.exibirDetalhes();
carro1.obterPrecoMedio();
carro1.avaliarPrecos();
ModeloCarro carro2 = new ModeloCarro();
carro2.setModelo("Civic");
carro2.setAno(2021);
carro2.setCor("Branco");
carro2.setPrecoAno1(124200.00);
carro2.setPrecoAno2(126900.00);
carro2.setPrecoAno3(116900.00);
carro2.setTipo("Sedan");
carro2.setTipoCombustivel("Flex");
carro2.setTipoTransmissao("Automático");
carro2.exibirDetalhes();
carro2.obterPrecoMedio();
carro2.avaliarPrecos();
}
}