Java学习——内部类

2019-10-04  本文已影响0人  啦咔_e297

内部类

一,成员内部类(包括静态内部类和非静态内部类)
package com.oop;

/*
 * 测试非静态内部类
 * */
 
public class TestInnerClass {
    public static void main(String[] args) {
        Outer.Inner inner =new Outer().new Inner();
        inner.show();
    }

}

class Outer{
    private int age=10;
    public void testOuter(){
        System.out.println("Outer.testOuter()");
    }
    
    class Inner{ //成员内部类(加static就变为静态内部类,不加则是非静态内部类)
        //可以直接访问外部类的方法,为外部类提供帮助的
        int age=20;
        public void show(){
            int age=30;
            System.out.println("外部类的成员变量"+Outer.this.age);
            System.out.println("内部类的成员变量"+this.age);
            System.out.println("局部变量"+age);
        }
    }
}
静态内部类
package com.oop;
/*
 * 测试静态内部类
 */
public class TestStaticInnerClass {
    private void mian() {
        // TODO Auto-generated method stub
        Outer2.Inner2 inner=new Outer2.Inner2();
    }
}

class Outer2{
    static class Inner2{
        
    }
}

匿名内部类

package com.oop;

public class TestAnonymousInnerClass {
    public static void test(A a){
        a.aa();
    }
    public static void main(String[] args) {
        TestAnonymousInnerClass.test(new A(){

            @Override
            public void aa() {
                // TODO Auto-generated method stub
                System.out.println("匿名内部类");
            }
            
        });
    }
}

interface A{
    void aa();
}

局部内部类

上一篇 下一篇

猜你喜欢

热点阅读