A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编程试验:我们在一个类中定义了一个private类型的成员变量,接着产生了这个类的两个实例对象,请问第一个对象的方法中,能否以“第二个对象.成员”的格式访问第二个对象中的那个private成员变量?
这个问题我不是太理解,经过我的实验貌似是可以的。代码如下:
  1. class  Test
  2. {
  3.     public static void main(String[] args){
  4.         Chinese c1=new Chinese(1);
  5.         Chinese c2=new Chinese(2);
  6.         System.out.println(c1.getAge(c2));
  7.     }

  8. class Chinese
  9. {
  10.     static String country="中国";
  11.     private static int count=0;
  12.     String name;
  13.     private int age;
  14.     Chinese(int age) {
  15.         //System.out.println(++count);
  16.         this.age=age;
  17.     }
  18.     public int getAge(){
  19.         return age;
  20.     }
  21.     public int getAge(Chinese ch){
  22.         return ch.age;
  23.     }

  24.     public void finalize(){
  25.         count--;
  26.         System.out.println("删除了");
  27.     }
  28.     void singOurCountry()
  29.     {
  30.         System.out.println("啊!,亲爱的" + country);
  31.         //类中的成员方法也可以直接访问静态成员变量
  32.     }
  33. }
复制代码

编译通过,结果是2。

3 个回复

倒序浏览
同一个类中是可以访问的。
回复 使用道具 举报
小白一枚,按理说c1的实例通过重载的函数去访问c2中私有的成员变量,访问不到:o
回复 使用道具 举报
你这是通过c2先访问c2的age,然后又将之传给了c1的方法。所以不算是直接访问的。你要整个int age=c2.getAge();这玩意儿整的主函数都直接访问c2中的私有成员了。你只看到了头和尾没有看到代码的过程。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马