主要参考:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类
如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)
显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类
而心脏又在人体当中,正如同是内部类在外部内当中。
从上面的例子不难看出,内部类其实严重破坏了良好的代码结构,但为什么还要使用内部类呢?
因为内部类可以随意使用外部类的成员变量(包括私有)而不用生成外部类的对象,这也是内部类的唯一优点
如同心脏可以直接访问身体的血液,而不是通过医生来抽血
下面是一个例子:
package java_class.practice;
//test the inner class
public class Outer {
private int m=10;
public class Inner{
private int m=11;
//测试成员变量屏蔽情况
void test(){
int m=12;
System.out.print(m);//12 test函数类的局部变量
System.out.print(Outer.this.m);//10 //Outer成员
System.out.print(this.m);//11 Inner成员
}
}
public static void main(String[] args) {
//外部使用内部类
Outer outer=new Outer();
Outer.Inner inner=outer. new Inner();
inner.test();
}
}