在类内部也可以定义另一个类。如果在类Outer的内部在定义一个类Inner此时类Inner就称为内部类,而Outer则称为外部类
public class Outer { public int age; private String name; //成员内部类 public class Inner{ private String password; public void in_method(){ System.out.println("内部类方法"); } } public void out_method(){ System.out.println("外部类方法..."); } } 访问成员内部类中的方法: 第一种:可以通过外部类方法创建内部类对象进行访问 第二种:在外部直接创建内部类对象 语法: 外部类.内部类 内部类名称 = 外部类实例.内部类实例 外部类.内部类 内部类名称 = new 外部类类名().new 内部类类名() Outer.Inner inner = new Outer().new Inner(); inner.in_method(); 外部类想要访问内部类成员,需要创建内部类对象 内部类想要访问外部类成员,直接访问 如果成员内部类中的方法种出现局部变量、内部类中的成员变量、外部类中的成员变量出现重名,我们需要严格区分: 访问局部变量 直接输入变量名称 age 访问内部类中的成员变量 this.变量名称 this.age 访问外部类中的成员变量 外部类类名.this.变量 Outer.this.age |
静态内部类
被static修饰的成员内部类,叫做静态内部类
外部创建静态内部类语法:
外部类.内部类 内部类名称 = new 外部类类名.内部类类名();
Outer02.Inner02 inner02 = new Outer02.Inner02();
方法内部类
如果内部类出现在方法的位置,那么就叫做方法内部类
匿名内部类
匿名对象 new 类名()
匿名内部类 ====== 匿名子类
new 类名(){}
当方法中出现参数为父接口或者父类时,可以尝试使用多态+匿名内部类语法