Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: hora da prática (Exercício Carro)

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();
    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, Aline! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação, o código tá bem estruturado e aproveita bem o conceito de herança ao estender a classe Carro em ModeloCarro. O uso dos métodos avaliarPrecos() e exibirDetalhes() está bem alinhado ao que o desafio propõe, mostrando um bom domínio da orientação a objetos.

Continue praticando e testando diferentes combinações de atributos e métodos para fortalecer seu entendimento.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!