内部类

内部类分为四种:

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

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成...
    ikaroskun阅读 1,249评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,759评论 18 399
  • 静态对象 静态对象的数据是全局唯一的,一改全改。 引用方便。直接用 类名. 静态方法名 或者 类名 . 静态变量名...
    Yanci516阅读 1,990评论 1 6
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 976评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139