说一点自己的理解吧~首先,我们需要明白,为什么要设计Java内部类?然后再去探究为何又将内部类设计为静态与非静态两种。将一个类设计成内部类,我觉得有两方面因素:在一个类内部,需要操作某种属性,而这个属性需要涉及的面又很广,我们可以考虑,将这些属性设计为内部类。然后就如下面 铁心男 用户回答的那样,好比你设计类 B 的目的只是为了给类 A 使用,那么,我们就可将其设定为内部类,没有必要将类 B 设置成单独的 Java 文件,防止与其他类产生依赖关系。然后我们再来说说为什么又将内部类设计为静态内部类与内部类:首先来看一下静态内部类的特点:如 昭言 用户所述那样,我是静态内部类,只不过是想借你的外壳用一下。本身来说,我和你没有什么“强依赖”上的关系。没有你,我也可以创建实例。那么,在设计内部类的时候我们就可以做出权衡:如果我内部类与你外部类关系不紧密,耦合程度不高,不需要访问外部类的所有属性或方法,那么我就设计成静态内部类。而且,由于静态内部类与外部类并不会保存相互之间的引用,因此在一定程度上,还会节省那么一点内存资源,何乐而不为呢~~既然上面已经说了什么时候应该用静态内部类,那么如果你的需求不符合静态内部类所提供的一切好处,你就应该考虑使用内部类了。最大的特点就是:你在内部类中需要访问有关外部类的所有属性及方法,我知晓你的一切… … 总结:首先需要知道为什么会有内部类,什么时候应该使用内部类,我们再去讨论,为什么 Java 的设计者们又将内部类设计为静态与非静态,这样就很清晰了。
转载内部类的理解
最新推荐文章于 2023-03-22 14:38:05 发布