Day12_内部类

内部类

内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就是内部类,而A类相对B类来说就是外部类了

public class Outer {
    private int id;
    public void out(){
        System.out.println("这是外部类的方法");
    }
    public class Inner {
        public void in(){
            System.out.println("这是内部类的方法");
        }
    }
}
public static void main(String[] args) {
    Outer outer = new Outer();
    //通过外部类来实例化内部类
    Outer.Inner inner = outer.new Inner();

    outer.out();
    inner.in();
}

1.成员内部类

//一个JAVA类里边可以有多个class但是只能有一个
//public class
public class Outer {

}
class A{

}

2.静态内部类

static内部类是内部类中一个比较特殊的情况,Java文档中是这样描述static内部类的:一旦内部类使用static修饰,那么此时这个内部类就升级为顶级类。也就是说,除了写在一个类的内部以外,static内部类具备所有外部类的特性

如:在方法或属性上使用static关键字

public class Outer {
    public static class Inner {
            public static void in(){
                System.out.println("这是内部类的方法");
            }
        }
    }
}

3.局部内部类

public class Outer {
    //局部内部类
    public void method(){
        class Inner{
            public void in(){
                
            }
        }
    }
}

4.匿名内部类

public class Test {
    public static void main(String[] args) {
        //没有名字初始化类,不用将实例保存到变量中
        new Apple().eat();
        new UserService() {
            @Override
            public void add() {
                
            }
        };
    }
}
class Apple{
    public void eat(){
        System.out.println("eat a Apple");
    }
}
interface UserService{
    void add();
}
posted @ 2021-02-18 22:02  Bobool  阅读(45)  评论(0)    收藏  举报