了解静态内部类

前言:本篇内容完全是本人观看各路大咖给出来的资料所获得的想法整合,如有出错请第一时间给予良心指正!

什么是静态内部类?

PS:在了解静态内部类之前,小编觉得有必要先了解下什么是内部类,为什么需要内部类。

首先内部类就是在一个类中再定义一个类,而新定义的这个类就是内部类。而为什么需要内部类呢?这就好比你设计类 B 的目的只是为了给类 A 使用,那么,我们就可将其设定为内部类,没有必要将类 B 设置成单独的 Java 文件,防止与其他类产生依赖关系。说回注主题什么是静态内部类,顾名思义就是在一个类中创造了一个以static定义的类!

为什么需要静态内部类?

只是为了降低包的深度,方便类的使用,静态内部类适用于包含类当中,但又不依赖与外在的类,不用使用外在类的非静态属性和方法,只是为了方便管理类结构而定义。在创建静态内部类的时候,不需要外部类对象的引用。

静态内部类和其他内部类有什么不同?

静态内部类只能访问外部类的静态成员。生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。可以定义私有静态内部类。

以代码形式列一个例子:首先我创造一个类为Student ,接下来我在Student 这个类中创造了一个名为Color这个非静态内部类,我在测试类中要调用这个内部类的话就必要先

创造一个名叫stu对象:Student stu  = new Student (),然后在用stu+"  . " 调出Color这个内部类。如果Color为静态内部类时,那我们就可直接通过Student这类+“  . ”调用出来它来!

 

posted @ 2019-07-17 10:36  余生走马观花  阅读(153)  评论(0)    收藏  举报