1
resposta

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

Exercício 3:
Classe ContaBancaria:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class ContaBancaria {
    protected int numeroDeConta;
    protected double saldo;
    protected String titular;

    public int getNumeroDeConta() {
        return numeroDeConta;
    }

    public double getSaldo() {
        return saldo;
    }

    public String getTitular() {
        return titular;
    }

    public void setNumeroDeConta(int numeroDeConta) {
        this.numeroDeConta = numeroDeConta;
    }

    public void setTitular(String titular) {
        this.titular = titular;
    }

    public void depositar(double valor){
        if (valor >= 0) {
            this.saldo += valor;
            System.out.println("Depósito realizado com sucesso!");
        } else {
            System.out.println("Digite um valor positivo.");
        }
    }

    public void sacar(double valor){
        if (saldo >= valor){
            this.saldo -= valor;
            System.out.println("Saque realizado com sucesso!");
        } else {
            System.out.println("Saldo insuficiente");
        }
    }

    @Override
    public String toString(){
        return "Conta Bancária{Titular: " + this.titular +
                ", Número de conta: " + this.numeroDeConta +
                ", Saldo: " + this.saldo;
    }
}

Classe: ContaCorrente:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class ContaCorrente extends ContaBancaria{
    public void cobrarTarifaMensal(int tarifaMensal){
         super.sacar(tarifaMensal);

    }
    @Override
    public String toString(){
        return "Conta Corrente{Titular: " + titular +
                ", Número de conta: " +  numeroDeConta +
                ", Saldo: " + saldo;
    }
}

Exercício 4:
Classe NumeroPrimo:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class NumeroPrimo {
    public boolean verificarPrimalidade(int numero){
        if (numero < 2) {
            return false;
        } else if ( numero == 2) {
            return true;
        }
        int root = (int) Math.sqrt(numero) + 1;
        for (int i = 2; i <= root; i++){
            if (numero % i == 0){
                return false;
            };
        }
        return true;
    }
}

Classe VerificadorPrimo:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class VerificadorPrimo extends NumeroPrimo {
    public boolean verificarSeEhPrimo (int numero) {
        return super.verificarPrimalidade(numero);
    }
}

Classe GeradorPrimo:

package br.com.alura.poo.reaproveitandoCaracteristicasEComportamentos;

public class GeradorPrimo extends NumeroPrimo {
    public int gerarProximoPrimo (int numero) {
        int i = 1;
        while (!super.verificarPrimalidade(numero + i)) {
            i ++;
        }
        return numero + i;
    }
}
1 resposta

Oi, Raoni! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Do jeito que você explicou, chamou atenção o uso correto de herança e sobrescrita, principalmente na separação de responsabilidades entre ContaBancaria e ContaCorrente, além da reutilização do método verificarPrimalidade nas classes de números primos, mostrando um bom entendimento de reaproveitamento de comportamentos.

Uma dica interessante para o futuro é usar métodos private para encapsular regras internas e evitar repetição. Veja este exemplo:


private boolean saldoSuficiente(double valor){
    return saldo >= valor;
}

Esse código cria um método auxiliar que verifica se o saldo permite uma operação, deixando o método sacar mais simples e fácil de manter.

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