Loading

15.Java内部类,匿名类学习

1.什么是内部类?

1.1 内部类的定义

《JAVA programming》里这样定义的:
内部类(又叫嵌入类),是一种在其他类的内部定义的类。
如下所示:

public class ShowInnerClass {
   
    
    private int data;
    public void methodOne(){
   
        
    }

    /**
     * InnerClass是ShowInnerClass的内部类
     */
    class InnerClass{
   
        public void method(){
   
            data++;
            methodOne();
        }
    }
    
}

InnerClass类在ShowInnerClass类的内部定义,所以InnerClass是ShowInnerClass的内部类。

1.2 内部类的特性

内部类作为定义在类中的类,有着其一定的特殊性。

内部类有下列特性:

1.2.1 内部类有外部变量的直接访问权

内部类可以引用包含在它的外部类中的数据和方法,所以不必把外部类的引用传递给内部类的构造方法,基于这个原因,内部类可以使程序简单明了。

如下面所示,内部类InnerClass可以直接访问外部类的私有变量和方法。

public class ShowInnerClass {
   
    private int data;
    private int num;
    private void methodOne(){
   
    }
    /**
     * InnerClass是ShowInnerClass的内部类
     */
    class InnerClass{
   
        public void method(){
   
            data++;
            methodOne();
        }
    }
}

1.2.2 内部类的编译文件

内部类只是用来支撑外部类的工作。编译后,他的名称形如“外部类名称 内部类名称 . c l a s s ”。例如, s h o w I n n e r C l a s s 中内部类 I

posted @ 2019-11-06 20:50  文牧之  阅读(6)  评论(0)    收藏  举报  来源