我不明白爲什麼我可以在私人領域之外訪問private int i
。訪問Java中的私人領域
public class Fish {
private int i = 1;
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // it IS possible
}
}
我不明白爲什麼我可以在私人領域之外訪問private int i
。訪問Java中的私人領域
public class Fish {
private int i = 1;
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // it IS possible
}
}
你的主要方法是魚類的一部分,不是嗎?
下不起作用:
public class Fish {
private int i = 1;
}
class Reptile{
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // Compiler error.
}
}
這不是課外課。你在同一班。
您正在實例化相同類的新實例,因此您可以訪問此類的專用字段。
私有意味着只有定義的類可以訪問該變量。
你的主要方法是類魚的方法,因此它被允許訪問變量
如果這是在SomeOtherClass的主要方法,在同一行會失敗。
訪問修飾符可以在級別級別不在對象級別。
您被允許訪問k.i
,因爲代碼位於聲明成員i
的同一類中。
理由是(afaik)以下內容:您封裝數據(部分)以便於日後的維護和重構。當你重構代碼時,你重構類而不是對象。
你不能在課外訪問,主要功能是類魚的一部分 – Vjy 2010-12-02 21:29:19