首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么外部Java类可以访问内部类私有成员?

外部Java类不能直接访问内部类的私有成员,但是可以通过内部类的公有方法或者使用反射来访问。

在Java中,内部类可以访问外部类的所有成员,包括私有成员。这是因为内部类实际上是外部类的一个成员,所以它可以访问外部类的所有成员。

如果外部类想要访问内部类的私有成员,可以通过内部类的公有方法或者使用反射来实现。

例如,以下是一个内部类访问外部类私有成员的示例:

代码语言:java
复制
public class Outer {
    private int value = 10;

    public class Inner {
        public void printValue() {
            System.out.println(value);
        }
    }
}

在这个示例中,内部类Inner可以访问外部类Outer的私有成员value

如果外部类想要访问内部类的私有成员,可以通过内部类的公有方法或者使用反射来实现。例如:

代码语言:java
复制
public class Outer {
    private int value = 10;

    public class Inner {
        public void printValue() {
            System.out.println(value);
        }
    }

    public void printValue() throws Exception {
        Inner inner = new Inner();
        Field field = Inner.class.getDeclaredField("value");
        field.setAccessible(true);
        System.out.println(field.getInt(inner));
    }
}

在这个示例中,外部类Outer通过反射访问了内部类Inner的私有成员value

总之,外部Java类不能直接访问内部类的私有成员,但是可以通过内部类的公有方法或者使用反射来访问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券