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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯晓骏 中级黑马   /  2013-10-27 00:49  /  1209 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Person implements Comparable<Person>
  2. {
  3.         private String name;

  4.         Person(String name)
  5.         {
  6.                 this.name = name;
  7.         }

  8.         public int compareTo(Person p)
  9.         {
  10.                 return this.name.compareTo(p.name);
  11.         }
  12. }

  13. class Test
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 new Person("1").compareTo(new Person("2"));

  18.                 //System.out.println(new Person("3").name);
  19.         }
  20. }
复制代码
为什么compareTo方法可以访问p的私有成员name

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
首先要Person类实现了Comparable接口,也实现了这个接口的compareTo的方法,你在使用name属性的时候是在类内部访问的。而在类的内部可以直接调用他的属性的。

评分

参与人数 1技术分 +1 收起 理由
To + 1 很给力!

查看全部评分

回复 使用道具 举报
你的代码斌没有直接用本类对象去访问其他对象的私有成员,实际上你是访问其他对象的方法,这个方法再去访问类的私有成员,类中的私有成员对内是可见的可直接操作的,外部是不可见
回复 使用道具 举报
一阵见血的回答你得问题
本类中是可以访问本类对象的私有成员的
你想想this.name不是也访问到了吗?

好好学习,基础很重要,不懂的可以问我
回复 使用道具 举报
To 金牌黑马 2013-10-27 16:30:31
报纸
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马