内部类

内部类

就是在一个类中定义一个类。比如:在A类中定义B类,B类相对于A类来说就成为内部类,A类则是外部类

成员内部类

public class Outer {

    private int id=10;
    public void out(){
        System.out.println("外部类的方法");
    }

    public class Inner{
        public void in(){
            System.out.println("内部类的方法");
        }
        //获得外部类的私有属性
        public void getID(){
            System.out.println(id);
        }
    }
}
Outer outer = new Outer();
//通过外部类来实例化内部类  先输outer.new Inner();  然后Alt+Enter
Outer.Inner inner = outer.new Inner();
inner.getID();

静态内部类

内部类前修饰词为public static class

局部内部类

public class Outer {
    //局部内部类:在方法中写类
    public void method(){
        class Inner{
            
        }
    }
}

匿名内部类

只在创建对象时使用:new 对象名(){};
大括号后有分号

public class Test {
    public static void main(String[] args) {
        //没有名字初始化类,不用将实例保存到变量中
        new Apple().eat();
        
        new UserService(){
            @Override
            public void hello() {
                
            }
        };//大括号后有分号
    }
}
//修饰词不能为public
class Apple{
    public void eat(){
        System.out.println("1");
    }
}
//接口
interface UserService{
    void hello();
}
posted @ 2021-07-23 16:15  valder-  阅读(36)  评论(0)    收藏  举报