JAVA 中的实例初始化块_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA 中的实例初始化块

JAVA 中的实例初始化块

 2011/1/14 7:38:57  zhanghong  http://zhanghong.javaeye.com  我要评论(0)
  • 摘要:我们都知道在java中有静态初始化块,也就是static{},他们会在类被加载时候调用。如果类中含有实例初始化块,也就是{}块,它会在什么时候被调用呢。我们来看个例子:publicclassInstanceInit{publicInstanceInit(){System.out.println("InstanceInitcreated");}static{System.out.println("InstanceInitstaticInitialzer");}{System.out
  • 标签:Java 实例

????? 我们都知道在java中有静态初始化块,也就是static{} ,他们会在类被加载时候调用。如果类中含有实例初始化块,也就是{}块,它会在什么时候被调用呢。

我们来看个例子

public class InstanceInit {
      public InstanceInit() {
	System.out.println("InstanceInit created");
      }
      static{
	System.out.println("InstanceInit static Initialzer");
      }
      {
	System.out.println("InstanceInit Initialzer");
      }
      public static void main(String[] args) {
	new SubInstanceInit();
      }

}

class SubInstanceInit extends InstanceInit {
         public SubInstanceInit() {
                super();
	System.out.println("SubInstanceInit created");
          }

          {
	System.out.println("SubInstanceInit Initializer");
          }
          static {
	System.out.println("SubInstanceInit static Initializer");
          }
}

?运行结果是什么呢?

InstanceInit static Initialzer

SubInstanceInit static Initializer

InstanceInit Initialzer

InstanceInit created

SubInstanceInit Initializer

SubInstanceInit created

从结果中可以看出实例初始化块在super()之后,且在构造器其他代码之前被调用。

发表评论
用户名: 匿名