Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida sobre como acessar o saldo como private

Quando utilizado o codigo abaixo da um erro pois o atributo saldo está como private e pelo super não conseguimos acessar.

public abstract class Conta {

    private double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;
    private static int total = 0;


    public abstract void deposita(double valor);
}

public class ContaCorrente extends Conta {

    @Override
    public void deposita(double valor){
        super.saldo += valor;
    }

}

Qual poderia ser uma solução para esse caso ja que é uma prática deixarmos os atributos privados?

Muito obrigado! =D

3 respostas

Bom dia, Henrique. Tem uma dica no exercício: Lembre-se de antes transformar o atributo saldo da classe Conta para protected, permitindo que as classes filhas o vejam. No caso, você pode substituir o private por protected: protected double saldo. Acredito que isso resolva essa questão.

Bom dia Felipe! Obrigado pela resposta! Sim trocando o private por protected ja volta a compilar o código, a questão é que por boas práticas deixamos os atributos como private, sendo assim qual poderia ser a solução sem alterar para protected?

solução!

Olá Henrique, tudo bem?

Para que você utilize os atributos privados de uma classe, é necessário que utilize os famosos "getters" e "setters", que são ensinados na aula 5 do curso "Java OO: Introdução a orientação a objetos", especificamente no tópico "encapsulamento e visibilidade".

(https://cursos.alura.com.br/course/java-introducao-orientacao-objetos) onde aprendemos os conceitos de encapsulamento.

Inclusive o eclipse possui um recurso onde podemos gerar getters e setters de maneira mais rápida, mas te recomendo assistir a aula 5 desse curso que passei o link, pois a utilização do encapsulamento vai ser bem comum, e é importante que você tire quaisquer outras duvidas que tenha para avançar mais ainda no seu aprendizado, concorda?

Te recomendo ver mais uma vez a aula 5 do curso e treinar o uso dos getters e setters, vai te ajudar bastante a sanar essa dúvida. :)

Espero ter ajudado, qualquer coisa pode falar que vamos estar aqui!

Bons estudos!