1
resposta

[Sugestão] Método deposita e saca sem o this

Sobre o código

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;
}

}

Eu acredito que o setSaldo não deveria ser apresentado no código em questão, mas os métodos deposita e saca estão sem o "this" no atributo saldo, e não teve a opção na pergunta sobre isso.

1 resposta

Olá, Francisco! Tudo bem?

No código apresentado, os métodos deposita e saca estão corretos mesmo sem o uso do this.

A palavra-chave this é usada para referenciar o objeto atual em um método ou construtor. No caso dos métodos setNumero, setAgencia e setSaldo, o this é utilizado para distinguir entre o parâmetro do método (por exemplo, saldo) e o atributo da classe (por exemplo, this.saldo).

Já nos métodos deposita e saca, não temos esse tipo de confusão, pois não há um parâmetro com o mesmo nome de um atributo da classe. Portanto, quando você escreve saldo += valor; ou saldo -= valor;, o Java entende que você está se referindo ao atributo saldo da classe.

Sobre o método setSaldo, você tem razão. Em uma situação real, provavelmente não queremos que o saldo possa ser alterado diretamente, mas apenas através dos métodos deposita e saca. No entanto, o método setSaldo pode ter sido incluído no exemplo para fins didáticos, para ilustrar o uso dos métodos setters.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.