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.
Carro
package br.com.alura.carro.model;
public class Carro {
protected String modelo;
protected int ano;
protected String cor;
private double precoAno1;
private double precoAno2;
private double precoAno3;
public double obterMediaPreco(){
return (double) (precoAno1 + precoAno2 + precoAno3) / 3.;
}
//setters e getters
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(){
}
public void avaliarPrecos() {
double menor = Math.min(precoAno1, Math.min(precoAno2, precoAno3));
double maior = Math.max(precoAno1, Math.max(precoAno2, precoAno3));
String analisePrecos = """
Preços dos últimos 3 Anos: R$%.2f, R$%.2f, R$%.2f.
O Menor Valor é: R$%.2f.
O Maior Valor é: R$%.2f.
""".formatted(precoAno1, precoAno2, precoAno3, menor, maior);
System.out.println(analisePrecos);
}
}
Modelo do Carro
package br.com.alura.carro.model;
public class ModeloCarro extends Carro{
private String tipo;
private String tipoCombustivel;
private String tipoTransmissao;
public void exibirDetalhes() {
String detalhes = """
-----------------------
Modelos: %s
Tipo: %s
Ano: %s
Cor: %s
Combustível: %s
Transmissão: %s
""".formatted(modelo, tipo, ano, cor, tipoCombustivel, tipoTransmissao);
System.out.println(detalhes);
}
//setters e getters
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getTipoTransmissao() {
return tipoTransmissao;
}
public void setTipoTransmissao(String tipoTransmissao) {
this.tipoTransmissao = tipoTransmissao;
}
public String getTipoCombustivel() {
return tipoCombustivel;
}
public void setTipoCombustivel(String tipoCombustivel) {
this.tipoCombustivel = tipoCombustivel;
}
}
Main
import br.com.alura.carro.model.ModeloCarro;
public class Main {
public static void main(String[] args) {
ModeloCarro carro1 = new ModeloCarro();
carro1.setModelo("Jetta");
carro1.setAno(2012);
carro1.setCor("Branco");
carro1.setPrecoAno1(74900.00);
carro1.setPrecoAno2(69890.00);
carro1.setPrecoAno3(59900.00);
carro1.setTipo("Sedan");
carro1.setTipoCombustivel("Flex");
carro1.setTipoTransmissao("Manual");
carro1.exibirDetalhes();
carro1.obterMediaPreco();
carro1.avaliarPrecos();
ModeloCarro carro2 = new ModeloCarro();
carro2.setModelo("Civic");
carro2.setAno(2015);
carro2.setCor("Preto");
carro2.setPrecoAno1(74900.00);
carro2.setPrecoAno2(72900.00);
carro2.setPrecoAno3(77999.00);
carro2.setTipo("Sedan");
carro2.setTipoCombustivel("Flex");
carro2.setTipoTransmissao("Automático");
carro2.exibirDetalhes();
carro2.obterMediaPreco();
carro2.avaliarPrecos();
}
}