我寫了下面這個類,用Comparable/Serializable接口來操作。爲什麼在compareTo中可以訪問某個類的私有成員?
package testpro;
public class SerialTest implements Comparable {
private int circleSize = 10;
private int getCircleSize() {
return circleSize;
}
@Override
public int compareTo(Object o) {
SerialTest object = (SerialTest) o;
if(getCircleSize()>object.getCircleSize()){ // I can access object.getCircleSize() here, but it's private.. why?
return 1;
}
else if(getCircleSize()<object.getCircleSize()){// I can access object.getCircleSize() here, but it's private.. why?
return -1;
}
else{
return 0;
}
}
}
我傳遞一個Object o到compareTo()方法,但getCircleSize()是私有的。那麼這怎麼可能,我有這個機會?我很確定C++不會放過它。
有很多這個問題的重複 - 我只是想找到一個*好*現在。 –
另外:http://stackoverflow.com/questions/4707504/why-can-i-access-a-private-variable-from-main-method(它說明了一點,如何*可以*靜態方法訪問私人成員,永遠,如果可見性是由對象實例確定的?) – user2864740