`
ezerg
  • 浏览: 268992 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Java 的静态内部类使用

阅读更多
Java 的内部类一般情况下很少使用,声明为 static 的静态内部类的使用就更少了。
也仅仅只有内部类能够被声明为static类型,通常我们声明一个普通类的时候不能使用 static 的。
前面提到过,编译器会自动给内部类加上一个引用,指向产生它的那个外部类的对象:http://ezerg.iteye.com/blog/1064476
如果不想要或者说不需要这个引用,那么我们就可以把这个内部类声明为 static ,但另外还有两个注意问题:
1、允许:将某个内部类修饰为静态类,才能够在这个类中定义静态的成员变量与成员方法,同时被外部类的静态方法使用。
2、限制:在静态内部类中,只能够引用外部类中的静态的变量,而不能够访问非静态的变量。原因很简单,外部类的引用不存在了。
public class OuterClass { // OuterClass 不能声明为 static 
	
private static String outerTest = ""; // 去掉 static 后 innerTest 则不能取到 outerTest 
	
public static InnerClass getInnerClass() {
	return new InnerClass();
}
	
static class InnerClass { // 去掉 static 后 getInnerClass 方法报错,innerTest 变量也不能为静态
	private static String innerTest = outerTest;
	// 省略
}
}


0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics