本帖最后由 张小锋 于 2012-5-7 01:43 编辑
你先要了解各种内部类的特点,才会知道在什么情况下适合使用那种内部内:
静态内部类特点:
静态内部类:(嵌套内部类,顶级嵌套类)
静态都是用来修饰类的内部成员的。比如静态方法,静态成员变量,静态常量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。
局部内部类的特点:
就是可以减少一些事件源的判断,而且结构清晰!修改比较容易
成员内部类特点:
内部类作为外部类的成员,可以访问外部类的私有成员或属性。
匿名内部类特点:
一种特殊的局部内部类
内部嵌套的没有名称只需实例化一次的类
匿名内部类在Java编程中用于回调的场景非常多
下面就用代码示例一些内部类的基本用法:
public class Text{
int sign=3;
public static void main(String[] args) {
Text text=new Text();
Runnable text=new Runnable(){表面上看起来它们似乎有名字,实际那不是它们的名字,只是Runnable类的子类的一个示例对象
public void run() {
} }
static class staticClass{//静态内部类()
//静态嵌套类不能访问外部类的成员和方法。
}
public void fun(){
final int i=0;
class in_methodClass{ //方法内部类
//不能有protected public private修饰,不能有static修饰
//仅仅在方法内部可见
private void fun() {
System.out.println(i);//只能访问方法提中的final变量
}
};
new in_methodClass();//只能在方法内构建其实例
}
class inText{//成员内部类
// 成员内部类必须利用外部类实例创建
int m=new Text().sign;// 成员内部类可以共享外部类的实例变量
}
}
|