内部类(4种)

*内部类:
         是定义在一个类的内部的新类型.即内部类,另外一个类称之为外部类
    
    根据位置不同:
      --成员内部类: (非静态内部类)
      --匿名内部类:
      --方法内部类(不常用):定义在方法中,相当于局部变量,仅限于在方法中使用
                                         定义时不能使用修饰词,可以直接访问外部类的非静态成员变量
      --静态内部类(不常用):以类的成员来定义的,有static修饰,可以直接访问外部类的静态成员
    
    (1)成员内部类:
                              以类的成员来定义,可以使用任何(4种)修饰词
                              内部类可以访问外部类的成员 
                              方法内隐藏了一个指向外部类对象的引用
                  外部类名.this.
                     使用:  先创建一个外部类的对象outer
                               然后使用外部类对象去使用new 调用内部类的构造器实例化
                                      
     (2)匿名内部类:
                               没有名字的类型,写在外部类的方法中,只用一次,不需要定义类的结构
                               通常都是为了实现接口/抽象类/某一现有子类         
                               子类没有名称,所以称之匿名    
                                   
                               当我们想使用某一个类/抽象类/接口的子类时,
                               因为我们只想用一次,就可以不用去定义子类的结构
                               所以写法上,我们可以向上造型
                               父类型   变量名     = new 父类名(){
                                                  重写接口/抽象类里的所有抽象方法
                                                  重写实现方法
                               };                   
    
           --使用匿名内部类的方式创建接口  InterX的对象
                       接口中有两个抽象方法:
                            (1)计算a和b的和
                            (2)计算a与b的乘积      
========================================================================                  
*外部类访问内部类的成员:
       在外部类添加一个内部类的成员变量进行访问

猜你喜欢

转载自blog.csdn.net/yk_3215123/article/details/82931064