关于java中的一些内部类

java中的一些内部类

一、成员内部类

public class A {
    private int id = 1;

    public class B {
        public void print_in(){
            System.out.println("这是内部类的方法");
        }
        public void getId(){
            // 内部类可以访问外部类的属性和方法
            System.out.println("id:" + id);
        }
    }

    public static void main(String[] args) {
        // 实例化外部类
        A aa = new A();
        // 实例化内部类
        A.B bb = aa.new B();
    }
}

二、静态内部类

public class A {
    private int id = 1;
	
    // 静态内部类,在编译的同时首先实例化
    public static class B {
        public void print_in(){
            System.out.println("这是内部类的方法");
        }
        public void getId(){
            // 静态内部类不可以访问外部类的非静态属性和非静态方法
            System.out.println("id:" + id);		// error
        }
    }
}

一个java类中允许有多个内部类,但是public只能有一个

三、局部内部类

public class A {
    private int id = 1;
	
    public void method(){
        // 局部内部类
        class In {
            public void print_in(){
            	System.out.println("这是内部类的方法");
        	}
        }
    }
}

四、匿名内部类

/*
	匿名内部类既没有名字的内部类
*/
public class A {
    public static void main(String[] args){
        // 实例化一个没有名字的内部类
        person Json = new person() {
            // 重写接口中的方法
            public void run() {
                System.out.println("Runing");
            }
        }
    }
}

interface person {
    void run();
}
posted @ 2020-03-09 00:34  lorz5  阅读(176)  评论(0)    收藏  举报