2
respostas

Desafio: hora da prática - Herança

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.

Classe Carro

package br.com.alura.lojacarro;

import br.com.alura.lojacarro.calculos.Calculadora;

public class Carro extends Calculadora {

    private String modelo;
    private double precoAno1;
    private double precoAno2;
    private double precoAno3;


    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    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 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: " + getPrecoAno1());
        System.out.println("Preço Ano 2: " + getPrecoAno2());
        System.out.println("Preço Ano 3: " + getPrecoAno3());
        System.out.println();

    }

}

Classe ModeloCarro

package br.com.alura.lojacarro;

public class ModeloCarro extends Carro{
}

Classe Calculadora

package br.com.alura.lojacarro.calculos;


import br.com.alura.lojacarro.Carro;

public class Calculadora {

    private double calcularMenorPreco(Carro carro) {
        double menorPreco = carro.getPrecoAno1();

        if (carro.getPrecoAno2() < menorPreco) {
            menorPreco = carro.getPrecoAno2();
        }

        if (carro.getPrecoAno3() < menorPreco) {
            menorPreco = carro.getPrecoAno3();
        }

        return menorPreco;
    }
    private double calcularMaiorPreco(Carro carro) {
        double maiorPreco = carro.getPrecoAno1();

        if (carro.getPrecoAno2() > maiorPreco) {
            maiorPreco = carro.getPrecoAno2();
        }

        if (carro.getPrecoAno3() > maiorPreco) {
            maiorPreco = carro.getPrecoAno3();
        }

        return maiorPreco;
    }

    public void resultado(Carro c) {
        double me = calcularMenorPreco(c);
        double ma = calcularMaiorPreco(c);
        System.out.println("Menor Preço: " + me);
        System.out.println("Maior Preço: " + ma);
    }

}

Classe Principal

import br.com.alura.lojacarro.ModeloCarro;
import br.com.alura.lojacarro.calculos.Calculadora;

public class Principal {
    public static void main(String[] args) {

        ModeloCarro meuCarro = new ModeloCarro();
        meuCarro.setModelo("Uno");
        meuCarro.setPrecoAno1(20000);
        meuCarro.setPrecoAno2(15000);
        meuCarro.setPrecoAno3(10000);
        meuCarro.exibirInfo();

        Calculadora cal = new Calculadora();
        cal.resultado(meuCarro);



    }
}
2 respostas

Oi, Arthur! Como vai?

Agradeço por compartilhar.

Seu código ficou bem organizado e atende ao desafio ao usar a classe ModeloCarro herdando de Carro, além de separar o cálculo do menor e maior preço em uma classe própria. Um ponto de ajuste é que Carro não precisa herdar de Calculadora, já que o carro não é uma calculadora; neste caso, faz mais sentido manter a Calculadora apenas recebendo um objeto Carro, como você já fez na classe Principal.

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

Obrigado pela dica Lorena.