Java 局部类

1.基本介绍

一个类的内部有完整的嵌套了另一个类。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。 是我们类的五大成员(属性、方法、代码块、构造器、内部类),内部类的最大特点就是可以直接访问私有属性,并且可以体现类与类的包含关系。

2.内部类的分类

  1. 定义在外部类局部位置上(方法、代码块):
    a) 局部内部类(有类名)
    b) 匿名内部类(没有类名,重点)
  2. 定义在外部类的成员位置上:
    a) 成员内部类(没有static修饰)
    b) 静态内部类(使用static修饰)

3.局部内部类的使用

public class Outer01 { // 外部类
    private int n1 = 100;

    private void m2() {
        System.out.println("Outer01 m2()");
    }

    public void m1() {
        //1.局部内部类通常是定义在外部类的局部位置,通常在方法中
        //3.不能添加访问修饰符,但是可以使用final修饰
        //4.作用域: 仅仅在定义它的方法或代码块中
        final class Inner01 { // 局部内部类
            private int n1 = 800;
            //2.可以直接访问外部类的成员,包含私有
            public void f1() {
                //5.局部类可以直接访问外部类的成员,比如: 下面的n1, m2()
                //7.如果外部类和内部类的成员重名时,默认遵循就近原则,如果想使用外部类的成员,使用(外部类名.this.成员)去访问
                // Outer01.this 本质就是外部类对象,即那个对象调用了m1,Outer01.this就是那个对象
                System.out.println("n1=" + n1 + " 外部类n1=" + Outer01.this.n1);
                m2();
            }
        }

        //6.外部类在方法中, 可以创建Outer01对象, 然后调用方法即可
        Inner01 inner01 = new Inner01();
        inner01.f1();
    }
}

4.局部匿名类的使用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容