我不明白为什么我可以在私人领域之外访问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