内部类可以对外界隐藏自己,而且又可以访问隐藏自己的外层类的数据。而静态内部类除了不能访问外层类的数据外,其它与一般内部类没有区别。//一般内部类 class A { private int b = 8; class B { public void printB() { System.out.println(b); } } }//静态内部类 class A { private int b = 8; static class B { public void printB() { System.out.println(b);//此处编译错误,不能访问外层的数据 } } }
class A
{
private int b = 8;
class B
{
public void printB()
{
System.out.println(b);
}
}
}//静态内部类
class A
{
private int b = 8;
static class B
{
public void printB()
{
System.out.println(b);//此处编译错误,不能访问外层的数据
}
}
}
1,内部类的功能是一个对立的小模块.
2,内部类如果定义成public,其他的类用到这个内部类的时候,需要从外部类开始,强调了从属关系.
内部类如果定义成proteced,表明这个内部类,在外部类的子类中的作用.
内部类如果定义成private,表明这个内部类仅在这个类中使用.个人认为,就private这种比较实用,当我们的外部类要用到一个功能对立的小模块的时候,想为其写一个类,但是这个类的适用范围不广,仅对当前的外部类适用,这个时候,就写成内部类,对其他的类隐藏起来.至于为什么写成静态的,什么时候写成静态的,因该不难理解.