/**
- 内部类:
- 内部类可以分为成员内部类(非静态内部类,静态内部类),匿名内部类,局部内部类;
- 成员内部类可以使用private,default,protected,public任意进行修饰;
*a。非静态内部类(外部类里面使用非静态内部类和平时使用其他类没有什么不同)
- 非静态内部类必须寄存在一个外部类对象里,因此,如果有一个非静态内部类对象那么一定存在对应的外部类对象。非静态内部类对象单独属于外部类的某个对象;
- 非静态内部类可以直接访问外部类的成员,但是外部类不能直接访问非静态内部类成员
- 非静态内部类不能有静态方法,静态属性和静态初始化块;
- 外部类的静态方法,静态代码不能访问非静态内部类,包括不能使用非静态内部类定义变量,创建实例
- 成员变量访问要点:
-
内部类里方法的局部变量:变量名
-
内部类属性:this。变量名;
-
外部类属性:外部类名。this。变量名;
- 代码实例:
public class TestInnerClass {
public static void main(String[] args) {
Outer.Inner inner=new Outer().new Inner();//要特别注意内部类的调用。
inner.show();
}
}
class Outer{
private int age =10;
public void testOuter(){
}
class Inner{
public void show(){
System.out.println("外部类成员变量age:"+Outer.this.age);
}
}
}
*
*
*
*
*/