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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

private String name;
private int age;
....
public boolean equals(Object obj)
        {
                if(!(obj instanceof Student))
                        throw new ClassCastException("类型不匹配");
                Student s = (Student)obj;
                return (name.equals(s.getName())&&age==s.getAge());
        }

红色部分是我自己平时敲代码的写法,也是今天我有疑惑的地方。name被private修饰之后不是不能直接被对象所调用吗,为什么下面的代码也是可以的呢?
public boolean equals(Object obj)
        {
                if(!(obj instanceof Student))
                        throw new ClassCastException("类型不匹配");
                Student s = (Student)obj;
                return (name.equals(s.name)&&age==s.age);
        }
应该是一个小问题,但是却一直想不明白,希望有朋友解释一下!

5 个回复

倒序浏览
是不能被其他对象直接调用,自己都不能调用了还怎么叫自己声明的属性哦....
回复 使用道具 举报
DamonZh 来自手机 中级黑马 2014-11-18 13:56:34
藤椅
这个是在本类中调用的
回复 使用道具 举报
private 的意思是 其他类 即使创建对象 ,也不可以访问 你这个类的 private成员
回复 使用道具 举报
被私有的属性只能在本类中调用,
回复 使用道具 举报
私有的只能本类用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马