Java中私有字段的访问
我不明白为什么我可以在类外访问私有inti,而它是私有的Java中私有字段的访问,java,Java,我不明白为什么我可以在类外访问私有inti,而它是私有的 public class Fish { private int i = 1; public static void main(String[] args) { Fish k = new Fish(); k.i = 2; // it IS possible } } 这不是课外活动。你在同一个班 您正在实例化同一类的新实例,因此可以访问该类的私有字段。private意味着只有定义
public class Fish {
private int i = 1;
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // it IS possible
}
}
这不是课外活动。你在同一个班
您正在实例化同一类的新实例,因此可以访问该类的私有字段。private意味着只有定义类可以访问变量
您的main方法是Fish类的方法,因此允许访问变量您的main方法是Fish类的一部分,不是吗 以下操作不起作用:
public class Fish {
private int i = 1;
}
class Reptile{
public static void main(String[] args) {
Fish k = new Fish();
k.i = 2; // Compiler error.
}
}
如果这是其他类中的主要方法,则同一行将失败。访问修饰符在类级别上工作,而不是在对象级别上工作 您可以访问
k.i
,因为代码与声明成员i
的类位于同一个类中
基本原理如下:封装数据(部分)以便于将来的维护和重构。重构代码时,重构的是类,而不是对象。不能在类之外访问,主函数是类的一部分