2
respostas

Resolução

Compartilhando o código para receber feedback sobre o mesmo. O exercício da Conta Bancária deu mais trabalho hehe

package desafios.desafio03;

public class Animal {

    protected String nome;
    private String especie;
    private char sexo;
    private int idade;
    private double peso;
    private String cor;

    public Animal(String nome, String especie, char sexo, int idade, double peso, String cor) {
        this.nome = nome;
        this.especie = especie;
        this.sexo = sexo;
        this.idade = idade;
        this.peso = peso;
        this.cor = cor;
    }

    public void comer() {
        System.out.println("O animal " + nome + " está comendo.");
    }

    public void dormir() {
        System.out.println("O animal " + nome + " está dormindo.");
    }

    public void locomover() {
        System.out.println(nome + " está se locomovendo.");
    }

    @Override
    public String toString() {
        return "Animal{" +
                "nome='" + nome + '\'' +
                ", especie='" + especie + '\'' +
                ", sexo=" + sexo +
                ", idade=" + idade +
                ", peso=" + peso +
                ", cor='" + cor + '\'' +
                '}';
    }
}
package desafios.desafio03;

public class Cachorro extends Animal {

    private String raca;
    private String porte;
    private String corPelagem;
    private String tipoPelagem;
    private String tamanhoDaCauda;
    private boolean castrado;

    public Cachorro(
            String nome, String especie, char sexo, int idade, double peso, String cor,
            String raca, String porte, String corPelagem, String tipoPelagem, String tamanhoDaCauda, boolean castrado
    ) {
        super(nome, especie, sexo, idade, peso, cor);
        this.raca = raca;
        this.porte = porte;
        this.corPelagem = corPelagem;
        this.tipoPelagem = tipoPelagem;
        this.tamanhoDaCauda = tamanhoDaCauda;
        this.castrado = castrado;
    }

    public void latir() {
        System.out.println(super.nome + " está latindo!");
    }

    public void abanarRabo() {
        System.out.println(super.nome + " começou a abanar o rabo.");
    }

    @Override
    public String toString() {
        return super.toString() + "{{Cachorro{" +
                "raca='" + raca + '\'' +
                ", porte='" + porte + '\'' +
                ", corPelagem='" + corPelagem + '\'' +
                ", tipoPelagem='" + tipoPelagem + '\'' +
                ", tamanhoDaCauda='" + tamanhoDaCauda + '\'' +
                ", castrado=" + castrado +
                "}}";
    }
}
package desafios.desafio03;

public class Circulo extends FiguraGeometrica implements Forma {

    private double pi = Math.PI;
    private double raio;

    public Circulo(double raio) {
        super.nome = "Círculo";
        this.raio = raio;
    }

    @Override
    public double calcularArea() {
        super.area = pi * Math.pow(raio, 2);
        return super.area;
    }
}
package desafios.desafio03;

public class ContaBancaria {

    private int numeroDaConta;
    private double saldo;

    public ContaBancaria(int numeroDaConta, double saldo) {
        this.numeroDaConta = numeroDaConta;
        this.saldo = saldo;
    }

    public double getSaldo() {
        return saldo;
    }

    @Override
    public String toString() {
        return "ContaBancaria{" +
                "numeroDaConta=" + numeroDaConta +
                ", saldo=" + saldo +
                '}';
    }
}
package desafios.desafio03;

public class FiguraGeometrica {

    protected String nome;
    protected double area;

    @Override
    public String toString() {
        return """
                ----------|Área do %s|----------
                Área = %.2fcm²
                --------------------------------
                """.formatted(nome, area);
    }
}
package desafios.desafio03;

public interface Forma {

    double calcularArea();
}
package desafios.desafio03;

public class Produto {

    private String nome;
    private double preco;

    public Produto(String nome, double preco) {
        this.nome = nome;
        this.preco = preco;
    }

    public double getPreco() {
        return preco;
    }

    @Override
    public String toString() {
        return "Produto = " + nome + "|Preço = R$" + preco;
    }
}

Continuando abaixo...

2 respostas
package desafios.desafio03;

public class Quadrado extends FiguraGeometrica implements Forma {

    private double ladoHorizontal;
    private double ladoVertical;

    public Quadrado(double ladoHorizontal, double ladoVertical) {
        super.nome = "Quadrado";
        this.ladoHorizontal = ladoHorizontal;
        this.ladoVertical = ladoVertical;
    }

    @Override
    public double calcularArea() {
        super.area = ladoHorizontal * ladoVertical;
        return super.area;
    }

}
package desafios.desafio03;

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        ArrayList<String> linguagensDeProgramacao = new ArrayList<>();
        linguagensDeProgramacao.add("Java");
        linguagensDeProgramacao.add("JavaScript");
        linguagensDeProgramacao.add("PHP");
        linguagensDeProgramacao.add("C");
        linguagensDeProgramacao.add("C++");

        System.out.println("Linguagens de Programação:");
        for (String linguagem : linguagensDeProgramacao) {
            System.out.println(linguagem);
        }

        System.out.println("---------------------------------------");
        Cachorro cachorro = new Cachorro(
                "Thor", "Canis Lupus Familiaris", 'M', 3, 18.5, "Marrom",
                "Labrador", "Grande", "Dourada", "Curta", "Longa",
                true
                );
        System.out.println(cachorro);
        cachorro.latir();
        cachorro.abanarRabo();

        Animal animal = cachorro;
        if (animal instanceof Cachorro) {
            animal = cachorro;
            System.out.println("Esse animal é um cachorro");
            System.out.println(animal);
            animal.comer();
            animal.dormir();
            animal.locomover();
        }

        System.out.println("---------------------------------------");
        Produto produto1 = new Produto("Fone", 99.99);
        Produto produto2 = new Produto("Mouse", 54.99);
        Produto produto3 = new Produto("Monitor", 435.00);
        Produto produto4 = new Produto("Caixa de Som", 80.00);

        ArrayList<Produto> produtos = new ArrayList<>();
        produtos.add(produto1);
        produtos.add(produto2);
        produtos.add(produto3);
        produtos.add(produto4);

        double somaDosPrecosDosProdutos = 0.0;
        int quantidadeDeProdutos = 0;
        double precoMedioDosProdutos = 0.0;
        for (Produto produto : produtos) {
            somaDosPrecosDosProdutos = somaDosPrecosDosProdutos + produto.getPreco();
            quantidadeDeProdutos++;
            System.out.println(produto);
        }
        precoMedioDosProdutos = somaDosPrecosDosProdutos / quantidadeDeProdutos;

        System.out.println(String.format("Preço médio dos produtos = R$%.2f", precoMedioDosProdutos));

        System.out.println("---------------------------------------");
        Quadrado quadrado1 = new Quadrado(3, 3);
        Quadrado quadrado2 = new Quadrado(5, 5);

        Circulo circulo1 = new Circulo(3.2);
        Circulo circulo2 = new Circulo(6.2);

        ArrayList<FiguraGeometrica> figuraGeometricas = new ArrayList<>();
        figuraGeometricas.add(quadrado1);
        figuraGeometricas.add(quadrado2);
        figuraGeometricas.add(circulo1);
        figuraGeometricas.add(circulo2);

        for (FiguraGeometrica figura: figuraGeometricas) {
            if (figura instanceof Circulo || figura instanceof Quadrado) {
                ((Forma) figura).calcularArea();
                System.out.println(figura);
            }
        }

        System.out.println("---------------------------------------");
        ContaBancaria contaBancaria1 = new ContaBancaria(324345, 435.67);
        ContaBancaria contaBancaria2 = new ContaBancaria(876576, 120.34);
        ContaBancaria contaBancaria3 = new ContaBancaria(945656, 620.34);
        ContaBancaria contaBancaria4 = new ContaBancaria(904534, 456.67);
        ContaBancaria contaBancaria5 = new ContaBancaria(453225, 320.50);

        ArrayList<ContaBancaria> contasBancarias = new ArrayList<>();
        contasBancarias.add(contaBancaria1);
        contasBancarias.add(contaBancaria2);
        contasBancarias.add(contaBancaria3);
        contasBancarias.add(contaBancaria4);
        contasBancarias.add(contaBancaria5);

        ContaBancaria contaComMaiorSaldo = contasBancarias.get(0);
        for (int i = 0; i < contasBancarias.size(); i++) {
            for (int j = 0; j < contasBancarias.size(); j++) {
                if (i != j) {
                    ContaBancaria contaAhSerComparada = contasBancarias.get(j);
                    if (contaComMaiorSaldo.getSaldo() < contaAhSerComparada.getSaldo()) {
                        contaComMaiorSaldo = contaAhSerComparada;
                    }
                }
            }
        }
        System.out.println("Conta com o maior saldo = " + contaComMaiorSaldo);
    }
}

O que achou?