2
respostas

[Sugestão] Resolução - Aula 2 - Atividade 10 - Código Encapsulado : Levando em consideração o conceito de encapsulamento, qual seria o problema do código anterior?

Desafio proposto pela Luri, a IA da Alura.

Imagine que você esteja analisando o código de uma aplicação Java e encontra a seguinte classe:

public class Conta { private int numero; private int agencia; private double saldo;

public void deposita(double valor) {
    saldo += valor;
}

public void saca(double valor) {
    if (valor <= saldo) {
        saldo -= valor;
    } else {
        System.out.println("Saldo insuficiente.");
    }
}

public void setNumero(int numero) {
    this.numero = numero;
}

public void setAgencia(int agencia) {
    this.agencia = agencia;
}

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

public int getNumero() {
    return numero;
}

public int getAgencia() {
    return agencia;
}

public double getSaldo() {
    return saldo;
}

}

Levando em consideração o conceito de encapsulamento, qual seria o problema do código anterior ?

A classe Conta não deve ter o método setSaldo, o método viola o conceito de encapsulamento, pois permite que o saldo da conta seja modificado diretamente de fora da classe, sem passar pelos métodos deposita e saca. O encapsulamento visa proteger os dados da classe, garantindo que eles sejam modificados apenas através de métodos controlados, como os métodos deposita e saca, que garantem a integridade do saldo da conta.

2 respostas

Oii, Jailson.

Muito obrigada por compartilhar com a gente.

Você identificou corretamente o problema na classe Conta. O método setSaldo compromete o princípio do encapsulamento, permitindo que o saldo seja alterado diretamente de fora da classe, sem a mediação dos métodos deposita e saca.

O objetivo do encapsulamento é proteger os dados, garantindo que qualquer modificação seja feita de forma controlada por métodos específicos, como deposita e saca, preservando a integridade do saldo.

Um abraço e bons estudos.

Então, Lorena, o setAgencia também viola, o setNumero também.