内部类

内部类: 在一个类的内部定义另外一个类,那么另外一个类则称作为内部类 。

内部类的class文件名: 外部类$内部类.class  

成员内部类:

      成员内部类的访问方式:

                 方式一: 在外部类提供一个方法创建内部类的对象进行访 

                 方式二:在其他类中直接创建内部的对象进行访问。

                            格式:

                                  外部类.内部类  变量名  = new 外部类().new 内部类();  

                 注意:静态成员内部类在其他类创建对象的格式:

                                  外部类.内部类  变量名  =  new 外部类.内部类();                          

内部类的好处: 直接访问外部类的所有成员。

应用场景: 我们在描述A事物的时候,A事物内部还维护了另外一个B事物,

而且B事物还必须 要访问到A事物的成员,那么这时候我们就可以使用内部类描述B事物。

比如: 人-- 心脏   . 图形化界面编程

       成员内部类要注意的细节:

            1. 内部类可以直接访问外部类的所有成员。

            2. 内部类与外部类存在同名的成员时, 在内部类中默认是访问内部类的成员, 可以通过"外部类.this.成员"进行指定访问外部类的成员。

           3. 私有的成员内部类只能通过在外部类提供一个公共的方法进行访问。 在其他类无法访问。     

            4.  如果一个成员内部类定义了静态的成员,那么该类也必须使用static修饰。

               

           疑问:为什么如果一个成员内部类定义了静态的成员,那么该类也必须使用static修饰 ???         

                 静态的成员变量是不依赖对象而存在的

局部内部类:在一个方法内部定义的类称作为局部内部类。

局部内部类要注意的细节:

  1. 如果局部内部类要访问局部变量,那么局部变量必须使用final去修饰。

匿名内部类:没有类名的内部类就称作为匿名内部类。

匿名内部类的好处: 简化书写。

匿名内部类的使用前提: 必须存在继承或者实现的关系。

注意的事项:

      1. 匿名内部类只是没有类名而已,其他的一切成员都是具备的。

posted on 2018-09-08 16:34  天才疯子都在右  阅读(92)  评论(0编辑  收藏  举报

导航