今天看core java,在接口那章遇到一个关于compareTo()方法的一个问题。是有关类实域权限的问题。
以下代码是书上245页(卷1,英文版)那个Employee类。我省去了部分跟问题不相关的内容。
class Employee implements comparable<Employee> { private double salary;
public int compareTo(Employee other) { if(salary < other.salary ) return -1;
if(salary > other.salary ) return 1;
return 0;
}
}
我想不通的是salary在Employee类中被声明为private.
既然这样,为什么在compareTo方法中还可以直接调用other对象的salary和 本类中的salary做比较?
一个类中得private域不是只能被这个类中的方法调用吗?
我在equals方法中也发现同样的问题。
小弟java初学者,小小问题百思不得其解,望高手答疑。
以下代码是书上245页(卷1,英文版)那个Employee类。我省去了部分跟问题不相关的内容。
class Employee implements comparable<Employee> { private double salary;
public int compareTo(Employee other) { if(salary < other.salary ) return -1;
if(salary > other.salary ) return 1;
return 0;
}
}
我想不通的是salary在Employee类中被声明为private.
既然这样,为什么在compareTo方法中还可以直接调用other对象的salary和 本类中的salary做比较?
一个类中得private域不是只能被这个类中的方法调用吗?
我在equals方法中也发现同样的问题。
小弟java初学者,小小问题百思不得其解,望高手答疑。
1.它是Employee的成员(不管是哪个Employee)
2.它在Employee内部
有一天 在他的方法compareTo里 来了另外一个Employee名叫e2
e1想 既然e2也是Employee 我有salary 那她一定也有salary
于是e1就叫e2的拿她的salary和自己的比比
原文说:关键字Private的意思是,除了包含该成员的类之外,其他任何类读无法访问这个成员。
小看private了,还有这层意思。
我就结贴把分给你了。
中秋快乐!