内部类
好处:
- 可以方便的访问包装类的成员
- 可以更清楚的组织逻辑,防止不应该被其他类访问的类进行访问
何时使用:
- 该类不允许或不需要其他类访问的时候
——在类中直接定义的内部类
如果函数的局部变量(函数的形参也是局部变量),内部类的成员变量,外部类的成员变量重名,我们应该按下面的程序代码所使用的方式来明确指定我们真正要访问的变量。
public class Outer{
private int size;
public class Inner{
private int size;
public void doStuff(int size){
size++;//引用的是doStuff函数的形参
this.size++;//引用的是Inner类中的成员变量
Outer.this.size++;//引用的Outer类中的成员变量
}
}
}
内部类如何被外部引用
ClassOuter{
Privateint size = 10;
Publicclass Inner{
Public void doStuff(){
System.out.println(++size);
}
}
}
Publicclass TestInner{
Public static voidmain(String[] args){
Outer outer = new Outer();
Outer.Inner inner =outer.new Inner();
Inner.doStuff();
}
}
------在方法中定义内部类
嵌套类并非只能在类里定义,也可以在几个程序块的范围内定义内部类。例如,在方法中,或者在for循环体内,都可以定义嵌套类部类。
在方法中定义的内部类只能访问方法中的final类型的局部变量,用final定义的局部变量相当于是一个常量,它的生命周期超过方法运行的生命周期。