1
resposta

Exercício: Conta Bancária II Uso do encapsulamento

public class ContaBancaria {

private String numeroConta;
private double saldo;
public String titular;


public ContaBancaria(String numeroConta, double saldoInicial, String titular) {
    this.numeroConta = numeroConta;
    this.saldo = saldoInicial;
    this.titular = titular;
}


public String getNumeroConta() {
    return numeroConta;
}

public void setNumeroConta(String numeroConta) {
    this.numeroConta = numeroConta;
}


public double getSaldo() {
    return saldo;
}

public void setSaldo(double saldo) {
    this.saldo = saldo;
}


public void depositar(double valor) {
    if (valor > 0) {
        saldo += valor;
        System.out.println("Depósito de R$ " + valor + " realizado com sucesso.");
    } else {
        System.out.println("Valor de depósito inválido.");
    }
}


public void sacar(double valor) {
    if (valor > 0 && valor <= saldo) {
        saldo -= valor;
        System.out.println("Saque de R$ " + valor + " realizado com sucesso.");
    } else {
        System.out.println("Saque não realizado: saldo insuficiente ou valor inválido.");
    }
}


public void exibirInformacoes() {
    System.out.println("Titular: " + titular);
    System.out.println("Número da Conta: " + numeroConta);
    System.out.println("Saldo: R$ " + saldo);
}


public static void main(String[] args) {
    ContaBancaria conta = new ContaBancaria("12345-6", 1000.00, "João da Silva");

    conta.exibirInformacoes();

    System.out.println("\n--- Operações ---");
    conta.depositar(500.00);
    conta.sacar(300.00);
    conta.sacar(1500.00); // tentativa inválida

    System.out.println("\n--- Informações Atualizadas ---");
    conta.exibirInformacoes();
}

}

1 resposta

Oi, Sheila! Como vai?

Seu código está bem organizado e mostra claramente o uso do encapsulamento com os métodos get e set. Também foi interessante ver o método exibirInformacoes() para mostrar os dados de forma prática durante os testes.

Uma dica interessante para o futuro é usar this também com variáveis públicas se elas forem sombreadas por parâmetros locais, ou melhor ainda, tornar titular privado para manter a consistência do encapsulamento. Veja este exemplo:

private String titular;

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

public String getTitular() {
    return titular;
}

O código acima torna o atributo titular privado e fornece acesso controlado, protegendo melhor os dados.

Ícone de sugestão

Para saber mais:

Além de manter atributos privados, outra prática comum em Java é usar o atalho de geração automática de getters e setters em IDEs como o Eclipse ou IntelliJ. Isso agiliza a criação de código repetitivo e ajuda a manter a consistência:

  • No Eclipse: clique com o botão direito → SourceGenerate Getters and Setters.
  • No IntelliJ: Alt + Insert (Windows/Linux) ou Cmd + N (Mac) dentro da classe.

Assim, você economiza tempo e evita erros ao digitar manualmente esses métodos, especialmente em classes com muitos atributos.

Alura

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