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

Desafio: hora da prática [reaproveitandoCaracteristicasEComportamentos] - PRIMEIRA PARTE

Segue a resolução do desafio.
Exercício 1:
Classe Carro:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

import java.time.LocalDate;
import java.util.Scanner;

public class Carro {
    private int anoInicial;
    private int[] anos = new int[3];
    int[] idades = new int[3];
    private double[] precos = new double[3];

    public void setAnoInicial (int anoInicial) {
        this.anoInicial = anoInicial;
    }

    public int[] getAnos(){

        for(int i = 0; i < 3; i++){
            anos[i] = anoInicial - i;
        }
        return anos;
    }

    public int[] getIdades(){

        for(int i = 0; i < 3; i++){
            idades[i] = LocalDate.now().getYear() - anoInicial + i;
        }
        return idades;
    }

    public void setPrecos() {
        Scanner scanner = new Scanner(System.in);
        if (anoInicial == 0){
            System.out.println("Digite o ano inicial: ");
            anoInicial = scanner.nextInt();
        }
        for (int i = 0; i < 3; i++){
            System.out.println("Digite o preço do carro para o ano de " + getAnos()[i]);
            precos[i] = scanner.nextDouble();
        }
        scanner.close();
    }

    public double[] getPrecos() {
        return precos;
    }

    @Override
    public String toString(){
        return  ", Preço " + getAnos()[0] + ": " + getPrecos()[0] +
                ", Preço " + getAnos()[1] + ": " + getPrecos()[1] +
                ", Preço " + getAnos()[2] + ": " + getPrecos()[2] +
                ", Idades: " + getIdades()[0] + ", " + getIdades()[1] + " e " + getIdades()[2] + " anos.";
    }
}

Classe ModeloCarro:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class ModeloCarro extends Carro {
    private String modelo;
    private String cor;

    public String getModelo() {
        return modelo;
    }

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

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    @Override
    public String toString(){
        return "Modelo: " + modelo +
                ", Cor: " + cor +
                ", Preço " + getAnos()[0] + ": " + getPrecos()[0] +
                ", Preço " + getAnos()[1] + ": " + getPrecos()[1] +
                ", Preço " + getAnos()[2] + ": " + getPrecos()[2] +
                ", Idades: " + getIdades()[0] + ", " + getIdades()[1] + " e " + getIdades()[2] + " anos.";
    }
}

Exercício 2:
Classe Animal:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class Animal {
    protected String nome;
    protected String cor;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    public String emitirSom(){
        return "Emitido Som";
    }

    @Override
    public String toString() {
        return "Animal{" + "nome=" + nome + ", cor=" + cor + '}';
    }
}

Classe Cachorro:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class Cachorro extends Animal {

    private boolean motoqueiro;

    public boolean isMotoqueiro() {
        return motoqueiro;
    }

    public void setMotoqueiro(boolean motoqueiro) {
        this.motoqueiro = motoqueiro;
    }

    @Override
    public String emitirSom() {
        if (motoqueiro) {
            return "Au Au Au Au Au Au Au Au Au Au";
        }
        else {
            return "Au au...";
        }
    }

    @Override
    public String toString() {
        return "Cachorro{" + "nome=" + nome + ", cor=" + cor + ", motoqueiro=" + motoqueiro + "}\n" + emitirSom();
    }
}

Classe Gato:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class Gato extends Animal{
    private boolean fome;

    public boolean isFome() {
        return fome;
    }

    public void setFome(boolean fome) {
        this.fome = fome;
    }

    @Override
    public String emitirSom(){
        if(fome){
            return"Miaaaaaaaaaaaaaaau...";
        } else {
            return "Miau...";
        }
    }
    @Override
    public String toString() {
        return "Gato{" + "nome=" + nome + ", cor=" + cor + ", fome=" + fome + "}\n" + emitirSom();
    }
}
1 resposta
solução!

Oi, Raoni! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação, principalmente na forma como você reaproveitou características e comportamentos usando herança tanto no exercício do Carro/ModeloCarro quanto no de Animal/Cachorro/Gato, aplicando bem sobrescrita de métodos e encapsulamento. Isso mostra uma boa compreensão dos conceitos trabalhados na aula.

Continue praticando dessa forma, pois esse domínio é importante para evoluir em Orientação a Objetos.

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