是的,每个类B的实例对象都持有了一个A的引用。因为非静态内部类B是依附于外部类A的,所以它可以访问外部类A的所有成员和方法,包括私有的成员和方法。而且,每个类B的实例对象都可以随意访问外部类A的成员和方法,而不需要通过A的对象来访问。

如果你把A作为B的一个字段,把B向上提一层,那么B就不再是内部类了,而是一个普通的类。这样做的好处是可以减少内存消耗,因为每个类B的实例对象不再需要持有A的引用。但是,这样做也会带来一些不方便,比如B就不能访问A的私有成员和方法了,而且B的实例对象也不能随意访问A的成员和方法,需要通过A的对象来访问。

在java中,我有一个类A,这个类A内部有个非静态内部类B,那么每个类B的实例对象是否都持有了一个A的引用?相比我把A作为B的一个字段,把B向上提一层呢

原文地址: https://www.cveoy.top/t/topic/vXU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录