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

[Desafio] Minhas resoluções

Desafio 1:

Adaptei um pouco o primeiro desafio para melhor abstração de superclasse e subclasse.

package br.com.alura.screenmatch.atividades.capitulo3;

public class Transporte {
    private String modelo;
    private double precoAno1;
    private double precoAno2;
    private double precoAno3;

    public void setPrecos(double precoAno1, double precoAno2, double precoAno3) {
        this.precoAno1 = precoAno1;
        this.precoAno2 = precoAno2;
        this.precoAno3 = precoAno3;
    }

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

    public String getModelo() {
        return modelo;
    }

    public double exibePrecoMedio(){
        return (precoAno1 + precoAno2 + precoAno3) / 3;
    }

    public double calculaMaiorPreco(){
        double maiorPreco = this.precoAno1;

        if (maiorPreco < this.precoAno2){
            maiorPreco = this.precoAno2;
        }

        if (maiorPreco < this.precoAno3){
            maiorPreco = this.precoAno3;
        }

        return maiorPreco;
    }

    public double calculaMenorPreco(){
        double menorPreco = this.precoAno1;

        if (menorPreco > precoAno2) {
            menorPreco = this.precoAno2;
        }

        if (menorPreco > precoAno3) {
            menorPreco = this.precoAno3;
        }

        return menorPreco;
    }
}

package br.com.alura.screenmatch.atividades.capitulo3;

public class Carro extends Transporte{
    private String tipoCarro;
    private String corDoCarro;

    public String getTipoCarro() {
        return tipoCarro;
    }

    public void setTipoCarro(String tipoCarro) {
        this.tipoCarro = tipoCarro;
    }

    public String getCorDoCarro() {
        return corDoCarro;
    }

    public void setCorDoCarro(String corDoCarro) {
        this.corDoCarro = corDoCarro;
    }
}

package br.com.alura.screenmatch.atividades.capitulo3;

public class PrincipalCapitulo3 {
    public static void main(String[] args) {
        Transporte transporte1 = new Transporte();
        transporte1.setModelo("Embraer EMB-314 Super Tucano");
        transporte1.setPrecos(17,20,21);
        System.out.println("Modelo do Transporte: " + transporte1.getModelo());
        System.out.println("Menor valor comercializado (em milhões R$): " + transporte1.calculaMenorPreco());
        System.out.println("Maior valor comercializado (em milhões R$): " + transporte1.calculaMaiorPreco());
        System.out.println("Média dos valores comercializados (em milhões R$): " + transporte1.exibePrecoMedio());

        Carro carro1 = new Carro();
        carro1.setModelo("BYD Dolphin");
        carro1.setTipoCarro("Elétrico");
        carro1.setCorDoCarro("Branco");
        carro1.setPrecos(150, 160, 190);

        System.out.println("Modelo do Carro: " + carro1.getModelo());
        System.out.println("Tipo do Carro: %s \nCor do Carro: %s".formatted(carro1.getTipoCarro(),carro1.getCorDoCarro()));
        System.out.println("Menor valor comercializado (em mil R$): " + carro1.calculaMenorPreco());
        System.out.println("Maior valor comercializado (em mil R$): " + carro1.calculaMaiorPreco());
        System.out.println("Média dos valores comercializados (em mil R$): " + carro1.exibePrecoMedio());
    }
}

Desafio 2:

package br.com.alura.screenmatch.atividades.capitulo3;

public class Animal {
    public void emitirSom(){
        System.out.println("Emitindo som!");
    }
}

package br.com.alura.screenmatch.atividades.capitulo3;

public class Cachorro extends Animal{
    @Override
    public void emitirSom() {
        System.out.println("Au au au au!");
    }

    public void abanarRabo(){
        System.out.println("Abanando o rabo!");
    }
}

package br.com.alura.screenmatch.atividades.capitulo3;

public class Gato extends Animal{
    @Override
    public void emitirSom() {
        System.out.println("Miau!");
    }

    public void arranharMoveis(){
        System.out.println("Arranhando móveis!");
    }
}

Os demais não couberam aqui! (Sinal para eu criar um conta no Github e upar lá, fui)

1 resposta
solução!

Oi André,

Parabéns pela iniciativa de adaptar os desafios e compartilhar suas soluções! 👍

No primeiro desafio, sua abordagem de criar uma classe Transporte como superclasse e Carro como subclasse é um ótimo exemplo de herança e reutilização de código.

As implementações dos métodos para calcular o menor, maior e o preço médio estão corretas e bem estruturadas. 👏

No segundo desafio, a implementação da sobrescrita do método emitirSom nas classes Cachorro e Gato demonstra um bom entendimento de polimorfismo.

A adição de métodos específicos para cada classe, como abanarRabo e arranharMoveis, também é um bom exemplo de como adicionar comportamentos únicos às subclasses. 💪

Para saber mais: Herança em Java - Documentação oficial da Oracle sobre herança em Java.

Continue praticando e explorando os conceitos da orientação a objetos! 🤔

Feliz Ano Novo!