【Java】内部类简述

内部类

静态内部类

静态内部类在生成对象的时候,不需要事先创建外部类对象

Outer.Inner in = new Outer.Inner();

成员内部类

成员内部类在生成对象的时候,需要事先创建外部类对象。

Outer.Inner in = new Outer().new Inner();

成员内部类在编译完成之后会隐含的保存着一个引用,该引用是指向创建它的外围类。

Class Outer{
    T xxx;
    Class Inner{
        func(){
            sout(Outer.this.xxx);
        }
    }
}

方法内部类

  1. 无修饰。
  2. 除了创建这个类的方法可以访问它以外,其他地方均不能访问。
  3. 不能有静态的变量或方法。
  4. 方法内部类不可以改变所在方法的形参,只能使用。

匿名内部类 ( 属于方法内部类 )

匿名内部类必须继承一个抽象类或者实现一个接口。

interface ITest{
    void test();
}

class A{
    public static void main(){
        ITest itest ;
        itest = new ITest(){
            public void test(){
                System.out.println("A->main方法->匿名内部类的test函数");
            }
        };
        itest.test(); 
    }
}
posted @ 2020-05-20 12:49  JimmyZou  阅读(0)  评论(0编辑  收藏  举报  来源