Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Minha Solução] Desafio Criar Classe 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.


import java.util.Scanner;

public class Carro {
    private String marca;
    private String modelo;
    private double valorAno1;
    private double valorAno2;
    private double valorAno3;
    private double ano1;
    private double ano2;
    private double ano3;

    Scanner sc = new Scanner(System.in);

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModelo() {
        return modelo;
    }

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

    public double getValorAno1() {
        return valorAno1;
    }

    public void setValorAno1(double valorAno1) {
        this.valorAno1 = valorAno1;
    }

    public double getValorAno2() {
        return valorAno2;
    }

    public void setValorAno2(double valorAno2) {
        this.valorAno2 = valorAno2;
    }

    public double getValorAno3() {
        return valorAno3;
    }

    public void setValorAno3(double valorAno3) {
        this.valorAno3 = valorAno3;
    }

    public double getAno1() {
        return ano1;
    }

    public void setAno1(double ano1) {
        this.ano1 = ano1;
    }

    public double getAno2() {
        return ano2;
    }

    public void setAno2(double ano2) {
        this.ano2 = ano2;
    }

    public double getAno3() {
        return ano3;
    }

    public void setAno3(double ano3) {
        this.ano3 = ano3;
    }

    public void entrarDadosCarro() {
        System.out.println("Insira a marca do carro: ");
        setMarca(this.marca = sc.nextLine());
        System.out.println("Insira o modelo do carro: ");
        setModelo(this.modelo = sc.nextLine());
    }

    public void entrarValorCarro() {
        System.out.println("Insira o primeiro ano do veículo: ");
        setAno1(this.ano1 = sc.nextInt());
        System.out.println("Insira o segundo ano do veículo: ");
        setAno2(this.ano2 = sc.nextInt());
        System.out.println("Insira o terceiro ano do veículo: ");
        setAno3(this.ano3 = sc.nextInt());
        System.out.println("Insira o valor do veiculo no primeiro ano: ");
        setValorAno1(this.valorAno1 = sc.nextInt());
        System.out.println("Insira o valor do veiculo no segundo ano: ");
        setValorAno2(this.valorAno2 = sc.nextInt());
        System.out.println("Insira o valor do veiculo no terceiro ano: ");
        setValorAno3(this.valorAno3 = sc.nextInt());
    }

    public void exibirInformacaoCarro() {
        System.out.println("===== SAIDA DE DADOS =====");
        System.out.println("Marca do veículo: " + this.getMarca());
        System.out.println("Modelo do veículo: " + this.getModelo());
        System.out.println("Valor do veículo primeiro ano: " + this.getValorAno1());
        System.out.println("Valor do veículo segundo ano: " + this.getValorAno2());
        System.out.println("Valor do veículo terceiro ano:" + this.getValorAno3());
        System.out.println("Menor preço identificado foi: " + identificarMenorPreco());
        System.out.println("Maior preço identificado foi: " + identificarMaiorPreco());
    }

    private double identificarMenorPreco() {
        double menorPreco = 0;
        if (getValorAno1() < getValorAno2() && getValorAno1() < getValorAno3()) {
            return this.getValorAno1();
        } else if (getValorAno2() < getValorAno1() && getValorAno2() < getValorAno3()) {
            return this.getValorAno2();
        } else {
        }return this.getValorAno3();
    }

    private double identificarMaiorPreco() {
        double maiorPreco = 0;
        if (getValorAno1() > getValorAno2() && getValorAno1() > getValorAno3()) {
            return this.getValorAno1();
        } else if (getValorAno2() > getValorAno1() && getValorAno2() > getValorAno3()) {
            return this.getValorAno2();
        } else {
        }return this.getValorAno3();
    }
}
2 respostas

Continuação:


import java.util.Scanner;

public class ModeloCarro extends Carro {
    private int quantidadePortas;
    private double potenciaMotor;

    Scanner sc = new Scanner(System.in);

    @Override
    public void exibirInformacaoCarro(){
        this.quantidadePortas = quantidadePortas;
        this.potenciaMotor = potenciaMotor;
    }

    public int getQuantidadePortas() {
        return quantidadePortas;
    }

    public void setQuantidadePortas(int quantidadePortas) {
        this.quantidadePortas = quantidadePortas;
    }

    public double getPotenciaMotor() {
        return potenciaMotor;
    }

    public void setPotenciaMotor(double potenciaMotor) {
        this.potenciaMotor = potenciaMotor;
    }

    public void entrarDetalhesCarro () {
        System.out.println("Insira a quantidade de portas: ");
        setQuantidadePortas(this.quantidadePortas = sc.nextInt());
        System.out.println("Insira a potência do motor: ");
        setPotenciaMotor(this.potenciaMotor = sc.nextDouble());
    }

    public void exibirDetalhesCarro() {
        System.out.println("Quantidade de Portas: " + this.getQuantidadePortas());
        System.out.println("Potência do motor: " + this.getPotenciaMotor());
    }
}

public class Principal {
    public static void main(String[] args) {
        Carro carro = new Carro();
        ModeloCarro modelo = new ModeloCarro();
        carro.entrarDadosCarro();
        modelo.entrarDetalhesCarro();
        carro.entrarValorCarro();
        carro.exibirInformacaoCarro();
        modelo.exibirDetalhesCarro();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Olá, Carlos.

Tudo bem?

Achei sua solução muito bem estruturada! Você conseguiu implementar a classe Carro de forma clara, e os métodos para identificar o menor e maior preço estão funcionando direitinho. Gostei da maneira como organizou os atributos e métodos, facilitando a leitura e o entendimento do código.

Parabéns pelo trabalho! Continue assim, com essa dedicação. O fórum está à disposição para qualquer dúvida ou desafio que surgir.

Bons estudos.