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