Estou com uma dúvida aqui nos modificadores de acesso. No código abaixo eu achava que a variável str (por ser private), não seria acessível no main a partir de uma instância. E também achava que não seria acessível utilizando uma instância em qualquer parte do código…alguém ai me explica? Me confundi…
Mas o que eu estou questionando é acessar o atributo privado criando uma nova instância
E6 e = new E6(“Java”);
Vc nao esta criando uma instancia com o atributo privado…vc esta apenas criando um objeto passando para um parametro para o construtor…o contrutor q, no seu caso, está setando o valor da sua propriedade
Como vc esta acessando de dentro da classe nao há nenhum problema em acessar a propriedade direto dessa forma, mas o aconselhavel eh usar um metodo getProperty para fazer isso
G
gk-bgh
pardal_nb:
Mas o que eu estou questionando é acessar o atributo privado criando uma nova instância
E6 e = new E6(“Java”);
Vc nao esta criando uma instancia com o atributo privado…vc esta apenas criando um objeto passando para um parametro para o construtor…o contrutor q, no seu caso, está setando o valor da sua propriedade
Como vc esta acessando de dentro da classe nao há nenhum problema em acessar a propriedade direto dessa forma, mas o aconselhavel eh usar um metodo getProperty para fazer isso
Acho que você não entendeu…
System.out.println([color=red]e.str[/color]);
[]s
Gunnar
Link_pg
Olá!
private te da acesso apenas na própria classe… quando você faz:
apesar de estar num método diferente e usando uma instância ainda está na mesma classe
Abraços
Veronicaaa
Oi
Isso é um atributo de instância, ou seja, pode ser acessado criando uma nova instância para a classe, como tem o modificador private isso significa que só pode ser acessado pela própria classe.
Aqui você criou duas instâncias de E6 (e1 e2) e acessou o atributo privado str porque as instâncias de E6 podem acessar seus membros privados, mesmo que você esteja tentando acessá-los dentro de outro método.
G
gk-bgh
Veronicaaa:
Oi
Isso é um atributo de instância, ou seja, pode ser acessado criando uma nova instância para a classe, como tem o modificador private isso significa que só pode ser acessado pela própria classe.
Aqui você criou duas instâncias de E6 (e1 e2) e acessou o atributo privado str porque as instâncias de E6 podem acessar seus membros privados, mesmo que você esteja tentando acessá-los dentro de outro método.
Eu só posso acessar o atributo privado pela instância porque estou dentro da mesma classe. Se fosse outra classe não funcionaria.
Eu tinha feito confusão com o private porque eu estava achando que o código dentro do main era como se fosse pertencente a outra classe… :oops:
Obrigado a todos pela ajuda