内部类

作者: 拂清风 | 来源:发表于2017-11-14 20:40 被阅读0次

    内部类分为四种:

    1.成员内部类

    2.局部内部类

    3.静态内部类

    4.匿名内部类

    1.成员内部类

    Java code

    <!--

    Code highlighting produced by Actipro CodeHighlighter (freeware)

    http://www.CodeHighlighter.com/

    -->

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

    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

    <!--

    Code highlighting produced by Actipro CodeHighlighter (freeware)

    http://www.CodeHighlighter.com/

    -->

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

    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

    <!--

    Code highlighting produced by Actipro CodeHighlighter (freeware)

    http://www.CodeHighlighter.com/

    -->

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

    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);

        }

    }

    相关文章

      网友评论

          本文标题:内部类

          本文链接:https://www.haomeiwen.com/subject/urfqvxtx.html