java初始化顺序

转载 2012年03月22日 22:44:59

1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
4. 父类构造方法
5. 子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
6. 子类构造方法

 

public abstract class Base { 
//5、初始化父类的非静态代码 
public int age = getNumber(100); 
// 静态成员变量和静态初始化块级别相同 所以按照在代码中的顺序依次执行 
// 1、初始化父 静态成员变量 static int sage 
static int sage = getNumber(50); 
// 2、初始化父 静态初始化块 static 
static { 
System.out.println("base static block"); 
} 
{ 
System.out.println("base nonstatic block"); 
} 
//6、初始化父类构造函数 
Base() 

{ 
System.out.println(age); 
System.out.println("base start"); 
draw();// 会调用子类覆盖后的方法 
System.out.println("base end"); 

} 

static int getNumber(int base) { 
System.out.println("base.getNumber int" + base); 
return base; 
} 

public void draw() { 
System.out.println("base.draw"); 
} 

} 


public class InitializeOrder extends Base { 
//7、初始化子类的非静态代码 
public int age = getNumber(1001); 
//8、初始化子类的非静态代码 
private int _radius = getNumber(10); 
//3、初始化子 静态成员变量 static int sage 
static int sage = getNumber(250); 
//4、初始化子 静态初始化块 static 
static { 
System.out.println("subclass static block"); 
} 
{ 
System.out.println("subclass nonstatic block"); 
} 
//9、初始化子类构造函数 
InitializeOrder(int radius) { 
_radius = radius; 
System.out.println(age); 
System.out.println("initializeOrder initialized"); 
} 

public void draw() { 
System.out.println("initializeOrder.draw " + _radius); 
} 

/** */ 
/** 
* @param args 
*/ 
public static void main(String[] args) { 

    new InitializeOrder(1000); 
   } 

} 


 

举报

相关文章推荐

java初始化顺序

一、初始化顺序在类的内部,变量的定义顺序先后决定了初始化的顺序。即使变量定义在不同的方法之间,它们也会在任何方法(包括构造函数)在调用之前初始化。1.简单的初始化顺序:class Sample { ...

JAVA类加载(初始化)顺序

虚拟机在加载JAVA类的时候,按照一定的顺序进行加载,了解虚拟机的加载顺序,可以有助于我们更好的去解决问题,下面我们来通过实际的现象来观察虚拟机是如何加载并初始化类的。

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

java类的初始化顺序

对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点: public cla...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)