Escopo de variavel privada

8 respostas
J

muito bem… eu tenho uma discussão interessante
com meus conhecimentos de orientacao a objeto, sempre achei que um objeto que tivesse uma variavel privada fosse o unico a que pudesse acessa-la, mesmo um objeto do mesmo tipo tentasse acessa-lo…seria impossivel. Mas encontrei o seguitne codigo abaixo na classe java.lang.Integer

public int compareTo(Integer anotherInteger) {
	int thisVal = this.value;
	int anotherVal = anotherInteger.value;
	return (thisVal<anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));
    }

e descobri que a variavel privada pode ser acessada por outros objetos desde que eles sejam do mesmo tipo.

queria saber a opinião de voces sobre isso
[]'s

8 Respostas

D

Desculpa…não sei se eu emburreci de tanto mexer no VB…mas onde exatamente nesse código que uma variável privada de outra classe está sendo auterada???

[]'s

J
descullpe

a variavel value eh private

private int value;

public int compareTo(Integer anotherInteger) {

int thisVal = this.value;

int anotherVal = anotherInteger.value;

return (thisVal<anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));

}
D
private int value; 
public int compareTo&#40;Integer anotherInteger&#41; &#123; 
int thisVal = this.value; 
int anotherVal = anotherInteger.value; 
return &#40;thisVal&lt;anotherVal ? -1 &#58; &#40;thisVal==anotherVal ? 0 &#58; 1&#41;&#41;; 
&#125;

this.value quer dizer que está acessando este atributo…ou seja o atributo da própria classe…
e ela não tá nem sendo modificada…uma variável dentro do método compareTo está recebendo o conteúdo dela…
Cara, desculpa…mas parece que vc tá vendo o que eu não tow…

[]'s

J

olha essa linha

int anotherVal = anotherInteger.value;

anotherInteger é um Integer tambem… portanto a variavel value dele é PRIVATE tambem

hehe entao… e ela ta sendo acessada por outro objeto
foi oq eu disse…variavel privete tem escopo de permissao de classe…eu achei que era de objeto

M

“JavaNight”:
olha essa linha

int anotherVal = anotherInteger.value;

anotherInteger é um Integer tambem… portanto a variavel value dele é PRIVATE tambem

hehe entao… e ela ta sendo acessada por outro objeto
foi oq eu disse…variavel privete tem escopo de permissao de classe…eu achei que era de objeto

Correto. :slight_smile: …eu tb sempre achei q fosse de objetos, descobri que estava errado 2 dias antes do exame de scjp :lol: huaehuae

D

vcs dois estão certissímos e eu vou no oculista…
pq eu olhava e olhava o codigo e enxergava isso…

int anotherVal = anotherInteger.intValue&#40;&#41;;

[]'s

B

bom ter aprendido isso 1 mes antes da prova ehhehe … tb nao sabia

J

pois é eu acabei de terminar de ler o livro pra certificacao o Sun Certifier Programer & Developer e eu nao sabia tambem…nao sei se passei batido ou se nao tinha la

eu vou comrpar o vaucher tambem agora
eh nois pessoal :slight_smile:

Criado 20 de janeiro de 2005
Ultima resposta 20 de jan. de 2005
Respostas 8
Participantes 4