• Java中内部类简介


    内部类

    分类

    1. 成员内部类

    2. 局部内部类

    3. 匿名内部类

    4. 静态内部类

    成员内部类

    常见形式:

     public class external(){
         public class inside(){
             //这是一个内部类
         }
     }

    特点:

    1. 解决java没有多继承问题(内部类继承一个父类,外部类继承一个父类,变相的多继承)

    2. 成员内部类可以直接使用外部类的属性、方法(包括私有的)

    3. 当外部要实例内部类时,注意内部类的访问修饰符

    4. 当外部类与内部类的属性名或者方法同名时,内部的属性方法通过this.调用,外部的属性方法通过外部类名.this.调用

    局部内部类

    常见形式:

     public class external(){
         public void method(){
             class local(){
                 //这是一个局部内部类
             }
         }
     }

    特点:

    1. 无访问修饰符

    2. 局部内部类或者匿名内部类。如果要使用外部类的局部变量(包括形参,全局变量不包括)

      那么这个局部变量必须是final修饰的,及为常量

      JDK1.8之前必须声明final,JDK1.8之后编译时自动添加final

      (方法调用完会销毁,而局部内部类不会马上销毁,这是,如果调用的不是常量会出现异议)

    3. 局部内部类也会生成.class文件

    静态内部类

    常见形式:

     public class external(){
         public static class inside(){
             //这是一个静态内部类
         }
     }

    特点:

    1. 不可访问外部类中非静态的属性方法

    2. 静态内部类在外部中无法实例化

    3. 调用:

      外部类调用:外部类名.内部类名.静态方法名()

      外部调用:外部类的对象.内部类名.静态方法名()

    4. 注意static与class的位置关系,如果书写为 class static会编译报错

    匿名内部类】

    常见形式:

     //Anonymous是一个抽象类 , abstract_method是Anonymous中的一个抽象方法
     public abstract class Anonymous(){
         public abstract void abstract_method();
     }
     //External是一个类 , method是External中的方法,参数的类型是anonymous
     public class External(){
         public void method(Anonymous anonymous){
             }
         }
     }
     //要生成一个实现abstract_method方法的匿名内部类
     public class Test(){
         public static void main(String[] args){
             External external = new External();
             external.method(new Anonymous(){
                 //这是一个匿名内部类
                 public void abstract_method(){}
             });
         }
     }

    特点:

    1. 使用方便

    2. 不生成.Class文件

  • 相关阅读:
    杂想
    杂题操作
    codeforces 11D(状压dp)
    2019 计蒜之道 复赛 “星云系统” (单调栈)
    SPOJ VLATTICE (莫比乌斯反演)
    2019 ICPC 陕西西安邀请赛 D. Miku and Generals
    buerdepepeqi 的模版
    HDU 2588 GCD
    二项式反演
    2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/12019726.html
Copyright © 2020-2023  润新知