内部类

内部类分为四种:

1.成员内部类

2.局部内部类

3.静态内部类

4.匿名内部类

1.成员内部类

Java code

//成员内部类......相当于非静态方法

class MemberInner {

    private int a = 3;

    public class Inner2 {

        private int a = 2;

        public void doSomething() {

            // 调用外部类的属性

            System.out.println(MemberInner.this.a);// 这块要注意......很重要!!!

            System.out.println(a);

        }

    }

}

public class Test3 {

    public static void main(String[] args) {

        MemberInner.Inner2 inner2 = new MemberInner().new Inner2();// 非静态内部类要new实例

        inner2.doSomething();

    }

}

2.静态内部类

Java code

//静态内部类......相当于静态方法

class StaticInner{

    private static int a=3;

    public static class Inner{

        public void test(){

            System.out.println(a);

        }

    }

}

public class Test2 {

    public static void main(String[] args) {

        StaticInner.Inner inner=new StaticInner.Inner();//静态内部类直接调用

        inner.test();

    }

}

3.局部内部类

Java code

//局部内部类......相当于局部变量

class LocalInner {

    public void doSomething(int b) {

        final int a = 3;// 只能访问final的变量

        class Inner3 {

            public void test(int b) {

                System.out.println(b);

                System.out.println(a);

            }

        }

        new Inner3().test(b);

    }

}

public class Test4 {

    public static void main(String[] args) {

        LocalInner inner = new LocalInner();

        inner.doSomething(4);

    }

}

你可能感兴趣的:(内部类)