Gostaria de entender o motivo de estar ocorrendo erro no seguinte trecho da classe ‘TesteConta.java’:
System.out.println("Cliente " + cc1.titular.getNome() + " eh portador da Conta " + cc1.numeroConta + " com saldo de R$ " + cc1.getSaldo());[/b]
O Eclipse reclama da chamada “cc1.titular.getNome()” e “cc1.numeroConta”
Por quê não posso me referenciar aos atributos ‘titular’ e ‘numeroConta’ a partir de cc1 (ContaCorrente) que está herdando Conta? Considerando que todos os atributos das classes Conta e Cliente são PROTECTED.
Amigão dê uma lida nos identificadores java, o protected consiste em apenas classes do mesmo pacote poderem acessar atributos identificados como protected, ou seja, se identificou ele como protected e quer utiliza lo em outra package é melhor mudar a estrategia ou dê uma lida em alguns padrões de projeto, podem lhe ajudar na solução deste caso.
ja testou ele private?!
L
lsouza13
PROTECTED = Mesmo Pacote OU Heranca.
Como as classes estão em pacotes diferentes, a primeira chance é eliminada.
Pelo jeito, TesteConta não herda ContaCorrente e por isso a segunda chance tambem é eliminada.
Faça acesso via gets.
Abs.
thiagolgf
Caro ramatisreis, segue abaixo o que consta na planilha da Caelum sobre este assunto.
Apostila “caelum-java-objetos-fj11.pdf” com o título “FJ-11 Java e Orientação a Objetos” na página 164.
“protected - Aquilo que é protected pode ser acessado por todas as classes do mesmo pacote e por
todas as classes que o estendam, mesmo que essas não estejam no mesmo pacote. Somente atributos,
construtores e métodos podem ser protected.”
Com esta explicação da Caelum, a sua explicação fica sem sentido e minha dúvida persiste.
Quem está certo e quem está errado?
Att,
Thiago Freitas
L
lsouza13
Thiago,
vou tentar explicar como funciona o protected.
Nem compilei o código abaixo, mas aconselho vc compilar pra entender melhor.
Se persistir dúvidas, ou se tiver algo errado aí, posta novamente.