内部类
概念:
在一个类的内部再定义一个完整的类
特点:
- 编译后可生成独立的字节码文件
- 内部类可以直接访问外部类的私有成员,而不破坏封装
- 可为外部类提供必要的内部功能组件
成员内部类
-
在类的内部定义,与实例变量、实例方法同级别的类
-
外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
-
当外部类、内部类存在重名属性时,会优先访问内部类属性
-
成员内部类不能定义静态属性(可包含静态常量)
package innerclass;
public class OutClass {
private int age=18;
private String name="外部类属性";
class Inner{
private int size=182;
private String name="内部类属性";
//不可定义静态属性(静态常量除外)
//private static String kk="kk";
private static final String hh="11";
public void sou(){
//打印外部类属性
System.out.println(age);
//打印内部类属性
System.out.println(size);
//打印内部类与外部类同名属性
System.out.println(name);
System.out.println(this.name);
System.out.println(OutClass.this.name);
}
}
}
package innerclass;
public class