1
resposta

Desafio: hora da prática - PARTE 1

Segue a resolução dos exercícios propostos:
Classe Animal:

public class Animal {
    private String nome;

    public Animal(String nome) {
        this.nome = nome;
    }

    public String getNome() {
        return nome;
    }

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

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

Classe Cachorro:

public class Cachorro extends Animal{
    private boolean babao;

    public Cachorro(String nome, Boolean babao){
        super(nome);
        this.babao = babao;
    }
    public boolean isBabao() {
        return babao;
    }

    public void setBabao(boolean babao) {
        this.babao = babao;
    }

    @Override
    public String toString() {
        return "Cachorro{nome: " + this.getNome() + ", babao: " + this.babao + '}';
    }
}

Interface Forma:

public interface Forma {
    public double calcularArea();
}

Classe Circulo:

public class Circulo implements Forma {
    private double raio;

    public double getRaio() {
        return raio;
    }

    public void setRaio(double raio) {
        this.raio = raio;
    }

    public Circulo(double raio) {
        this.raio = raio;
    }

    @Override
    public double calcularArea() {
        return Math.PI * Math.pow(raio, 2);
    }
}

Classe Quadrado:

import java.io.Serializable;

public class Quadrado implements Forma {
    private double aresta;

    public Quadrado(double aresta) {
        this.aresta = aresta;
    }

    public double getAresta() {
        return aresta;
    }

    public void setAresta(double aresta) {
        this.aresta = aresta;
    }


    @Override
    public double calcularArea() {
        return this.aresta * this.aresta;
    }
}
1 resposta

Oii, Raoni! Tudo bem?

Excelente começo! A estrutura das suas classes e interfaces tá muito bem organizada e segue corretamente os princípios da Orientação a Objetos.

Pontos Fortes

  • Herança e construtores: O uso do super(nome) na classe Cachorro tá perfeito pra garantir que o atributo da classe mãe (Animal) seja inicializado corretamente.
  • Interface: A implementação do método calcularArea() nas classes Circulo e Quadrado tá correta.
  • Math.pow: Muito bom o uso de Math.pow(raio, 2) no círculo, deixa o código mais elegante do que fazer raio * raio manualmente.

Continue firme nos estudos.

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