内部类(JAVA基础)

2022/1/19 11:20:58

本文主要是介绍内部类(JAVA基础),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

内部类
       1、概念:把类定义在其他类的内部,我们称之为内部类;
      
      2、内部类的特点
           1)内部类可以访问外部类的成员,包括私有;
           2)外部类想要访问内部类的成员,必须要创建内部类的对象;
      
      3、内部类定义的格式:
           1)
      
      3、按在类中定义的位置不同,可以分为如下两种格式:

           1)成员内部类:
                <1>、定义在类的成员位置;
                
                <2>、内部类可以访问外部类的成员,包括私有;
                
                <3>、定义格式
                     a、外部类名.内部类名 对象名 = new 外部类名().new 成员内部类名();
                     b、当内部类是被静态所修饰的时候,出现了另外一种创建内部类的方式
                        外部类名.内部类名 对象名 = new 外部类名.内部类名();

           2)局部内部类:
                <1>、定义在方法中的类;
                <2>、局部内部类可以直接访问外部类中所有的成员;
                <3>、要想使用局部内部类中的方法,在定义局部内部类的成员方法中,
                     创建局部内部类对象调用方法。
                     
           3)匿名内部类:
                <1>、语句定义格式:
                     new 类名(可以是抽象类/具体类/接口)(){
                           要重写的方法; 
                     }
                    举例:   interface A{
                                 b();
                                 c();
                              }
                              
                              class B implements A{
                                  b(){...}
                                  c(){...}
                                  }
                             A a = new B();
                             a.b();
                             a.c();
                    上述用匿名内部类改进为:
                             A a = new A(){
                                 b(){...}
                                 c(){...}
                                };
                

                <2>、匿名内部类存在的前提:
                     要存在一个类或者是一个接口,这个类可以是具体的也可以是抽象的;
                     
                   
                <3>、局部内部类访问局部变量的注意事项:
                     必须被final修饰?
                     为什么呢?
                     因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从
                     堆内存中消失,还要使用那个变量。为了让数据还能继续被使用,就用fianl修饰,
                     这样,在堆内存里面存储的其实是一个常量值。通过反编译工具可以看一下。
 



这篇关于内部类(JAVA基础)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程