java内部类

内部类定义:在java中允许一个类定义在另一个类内中,前者叫内部类,后者叫外部类

根据内部类定义的位置分为:

  成员内部类:类定义在方法外;类定义在方法外并且是静态类 嵌套类

        因为内部类可以访问外部类的私有变量,所以内部类适用于和外部类的频繁交互(也就是说,内部类的定义应该是依靠外部类定义的对象)

  类定义在方法内: 普通用法 , 普通局部内部类

          匿名内部类 (超重点),

          局部内部类不能对外创建,局部内部类通过内部方法调用

          局部内部类不能加修饰符

在其他类中直接创建内部类对象:

  外部类类名.new 内部类名称()

class Outer {
    
    private int id = 10;
    private String name = "Outer.name";
    
    // 普通内部类, 隶属于外部类的对象的, 它的创建和使用也受外部类对象的限制.
    public class Inner1 {
        private int id = 100;
        public void inner1Test() {
            //System.out.println(id); // 和下面一样
            System.out.println(Inner1.this.id); // 内部类的this对象的属性
            System.out.println(Outer.this.id); // 外部类的this对象的属性
            System.out.println(name);
            outerTest2(); // 在内部类中可以随意使用外部类的成员.
        }
    }
    
    public void outerTest1() {
        Inner1 inner1 = this.new Inner1();
        inner1.inner1Test();
    }
    
    public void outerTest2() {
        System.out.println("outerTest2()...");
    }
    
    // 嵌套类
    public static class Inner2 {
    }
}

public class InnerClassTest {
    
    public static void main(String[] args) {
        Outer outer = new Outer();
        //outer.outerTest1();
        // 直接创建内部类对象, 需要使用外部类对象.new 
        Outer.Inner1 oi1 = outer.new Inner1();
        oi1.inner1Test();
    }
}

 

posted @ 2023-03-05 09:17  时光匆匆~  阅读(10)  评论(0编辑  收藏  举报