Java:为什么我可以读取私有属性?

Java:为什么我可以读取私有属性?,java,attributes,modifier,Java,Attributes,Modifier,这可能是一个愚蠢的问题,但我想知道为什么即使使用了私有修改器,我仍然可以读取半径和年龄属性。我认为如果不使用getter和setter,我既不能读取也不能实例化这些修改过的属性 public class Test { private int radius = 3; private int age; public static void main(String[] args) { Test a = new Test(); System.ou

这可能是一个愚蠢的问题,但我想知道为什么即使使用了私有修改器,我仍然可以读取半径和年龄属性。我认为如果不使用getter和setter,我既不能读取也不能实例化这些修改过的属性

public class Test {
    private int radius = 3;
    private int age;

    public static void main(String[] args) {
        Test a = new Test();
        System.out.println(a.radius);
        System.out.println(a.age);
    }
}

private
仅表示不能从类外部直接访问这些变量。类内部的所有方法都可以自由使用变量。

声明为私有的方法、变量和构造函数只能在声明的类内部访问

私有访问修饰符是限制最严格的访问级别。如果类中存在公共getter方法,则可以在类外部访问声明为private的变量


使用private修饰符是对象封装自身并向外界隐藏数据的主要方式。

因为您是从类内部读取数据的
main
Test
的范围内,即使它是静态的。私有成员可供类使用,而不可供其他类使用。