几行代码带你彻底搞懂几行代码带你彻底搞懂Java内部类内部类
内部类基本概述语法格式成员内部类局部内部类匿名内部类静态嵌套类静态嵌套类和非静态嵌套类的区别
内部类内部类
基本概述基本概述
当一个类的定义放在另一个类的实体时,则该类叫做内部类,该类所在的类叫做外部类
在一个类体中可以出现的内容:成员变量、成员方法、构造方法、构造块、静态语句块、静态变量、方法、内部类
嵌套类
内部类(成员内部类、局部内部类、匿名内部类)
静态嵌套类
语法格式语法格式
class 外部类类名{
class 内部类类名{
内部类类体;
}
}
成员内部类成员内部类
成员内部类定义在另一个类或接口中的内部类
注意事项
必须先创建外部类对象才能创建成员内部类对象
不能含有静态变量、静态代码块、静态方法(除了静态常量)
外部类可以通过成员内部类的对象调用内部类私有成员
成员内部类是一个独立的类,编译成独立的.class文件
作用
成员内部类既可以访问外部类信息,又可以访问父类信息,从而使得多继承的解决方案变得完整
案例
Outer.java
// 成员内部类的使用
public class Outer { // 外部类
private String str = "Outer类的str1";
private String str2 = "Outer类的str2";
/*
* 第一:内部类的名称不能与外部类重名
* 第二:可以使用final、访问修饰符修饰
*/
public class Inner{ // 内部类
private String str = "Inner类的str1";
private String str2 = "Inner类的str2";
public void show() {
// 内部类的成员优先于外部类成员
System.out.println(str);
System.out.println(str2);
// 使用"外部类.this.成员"访问外部类的成员
System.out.println(Outer.this.str2);
System.out.println(Outer.this.str);
}
}
}
TestOuter.java
import Inner.demo1.Outer.Inner;
public class TestOuter {