黑马程序员技术交流社区
标题:
关于静态内部类的问题
[打印本页]
作者:
netboy032
时间:
2012-12-29 11:42
标题:
关于静态内部类的问题
本帖最后由 辛攀 于 2013-1-18 09:45 编辑
在外部类加载初始化的时候,静态内部类会加载初始化吗?如果会的话,那它里面的静态成员会初始化吗,还是等到外部类方法调用静态内部类的时候才初始化?
我这里只想知道关于静态内部类的加载初始化问题,其他的什么普通类的初始化就不要说了。
作者:
罗利华
时间:
2012-12-29 17:43
public class Outer {
public Outer() {
System.out.println("outer class");
}
static class Inner {
public Inner() {
System.out.println("inner class");
}
}
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner=new Outer.Inner();
}
}
打印结果:
outer class
inner class
作者:
netboy032
时间:
2012-12-30 12:03
修心者 发表于 2012-12-29 17:43
public class Outer {
public Outer() {
System.out.println("outer class");
首先先谢谢你的回答啊,不过你能告诉我你要表达的是什么吗?
作者:
全超
时间:
2013-1-16 14:13
当内部类被static 修饰的时候,内部类就具备static 的特性:随着类(即外部类)的加载而加载,相同内部类中的static 代码块也会随着类(内部类)的加载而加载。
用个简单小程序可以验证一下。
class InDemo
{
public static void main(String[] args)
{
Out.In.show();
}
}
class Out
{ private static int x=1;
static class In
{ private static int x=2;
static void show()
{System.out.println("x=="+x);}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2