Java 的静态内部类使用

Java 的内部类一般情况下很少使用,声明为 static 的静态内部类的使用就更少了。
也仅仅只有内部类能够被声明为static类型,通常我们声明一个普通类的时候不能使用 static 的。
前面提到过,编译器会自动给内部类加上一个引用,指向产生它的那个外部类的对象:[url]http://ezerg.iteye.com/blog/1064476[/url]
如果不想要或者说不需要这个引用,那么我们就可以把这个内部类声明为 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值