Java(内部类)

发布于 2024-02-02  649 次阅读


内部类是在外部类中的类,Java有四种内部类:

其中除了,和正常类没有什么区别(可以创建各种成员)

1.成员内部类(可以访问外部类的成员)

public class outer{
    public class inner{
        //创建对象时需要先创建外部类对象
    }
}
//创建方法
outer.inner in = new outer().new inner();
//访问该类的成员变量时,可以加this。
this.num;
//访问外部类的成员变量时,可以加类名this。
outer.this.num;

2.静态内部类(用static修饰的内部类)

public class outer{
    public static class inner{

    }
}
//创建对象的格式: 内部类.外部类 变量名 = new 内部类.外部类()
//在静态内部类中可以直接访问外部类的静态成员,但不能访问实例成员

3.局部内部类

4.匿名内部类(是一种特殊的局部内部类,无类名)

匿名内部类在创建对象时,会编译成一个子类,然后立即创建一个子类对象出来

public class outer{
    animal top = new animal(){
        @Override
        void run() {
            System.out.println();
        }
    };
    insert under = new insert(){
        @Override
        public void jump() {
            
        }
    };
    public class animal{
        void run(){

        };
    }
    interface insert{
        void jump();
    }
}