黑马程序员技术交流社区
标题:
同一类中,p1的方法能否以p2.var的形式访问private成员变量?
[打印本页]
作者:
as604049322
时间:
2014-12-15 08:48
标题:
同一类中,p1的方法能否以p2.var的形式访问private成员变量?
编程试验:我们在一个类中定义了一个private类型的成员变量,接着产生了这个类的两个实例对象,请问第一个对象的方法中,能否以“第二个对象.成员”的格式访问第二个对象中的那个private成员变量?
这个问题我不是太理解,经过我的实验貌似是可以的。代码如下:
class Test
{
public static void main(String[] args){
Chinese c1=new Chinese(1);
Chinese c2=new Chinese(2);
System.out.println(c1.getAge(c2));
}
class Chinese
{
static String country="中国";
private static int count=0;
String name;
private int age;
Chinese(int age) {
//System.out.println(++count);
this.age=age;
}
public int getAge(){
return age;
}
public int getAge(Chinese ch){
return ch.age;
}
public void finalize(){
count--;
System.out.println("删除了");
}
void singOurCountry()
{
System.out.println("啊!,亲爱的" + country);
//类中的成员方法也可以直接访问静态成员变量
}
}
复制代码
编译通过,结果是2。
作者:
Honelyboy
时间:
2014-12-15 21:37
同一个类中是可以访问的。
作者:
不给吃鸭梨
时间:
2014-12-15 22:05
小白一枚,按理说c1的实例通过重载的函数去访问c2中私有的成员变量,访问不到:o
作者:
chudaming213
时间:
2014-12-15 22:22
你这是通过c2先访问c2的age,然后又将之传给了c1的方法。所以不算是直接访问的。你要整个int age=c2.getAge();这玩意儿整的主函数都直接访问c2中的私有成员了。你只看到了头和尾没有看到代码的过程。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2