Hi, I found this question in javaranch mock exam. Can one object access a private variable of another object of the same class? The Answer is YES. though the description was given, I could not understand it. I mean it was not clear. Anyone! explain this!! Sapna
hi sapna all the scopes like Private, Protected etc are "LEXICAL". meaning, they are textual. they ARE NOT related to objects we create. so, if i have private int x in my class C then i can refer to variable x withing the class definition ANYWHERE regardless of which object it belongs. eg.
this will print swapped values as we exchanged the values of c1 and c2 objects. here we access c2.x at line 1 but still it works! why? because the access of var x is not related to the object of class C (that is c2 here) but its LEXICAL. we are referring to var x in the textual scope of class C. thats why it works. in the S.o.p in main method i have used c1.x and c2.getX() just to show that we can access x in anyway. if we had another class called A and private var y in that class which we wanted to use in class C's method test() then it wouldn't work. hih maulin