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类变量初始化顺序

  • 2014年04月08日 11:38
  • 5KB
  • 下载

Java靜態初始化與構造方法的執行順序

import static net.mindview.util.Print.*class Insect{private int i=9;protected int j;Insect(){print("...

Java类继承初始化顺序

  • 2016年09月02日 12:27
  • 11KB
  • 下载

C++和Java初始化顺序的比较代码

  • 2010年11月25日 18:07
  • 27KB
  • 下载

java类的初始化块/执行顺序,实例化对象数据赋值

java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值。与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化...

Java初始化顺序

  • 2013年05月20日 17:04
  • 135KB
  • 下载

java代码的初始化顺序demo

  • 2017年07月23日 00:22
  • 16KB
  • 下载

JAVA顺序栈操作——初始化、入栈、出栈、判断空栈、判断栈满

JAVA顺序栈操作——初始化、入栈、出栈、判断空栈、判断栈满;顺序栈:使用一组连续的内存依次保存栈中的数据,定义一个top变量来保存栈顶序号。栈结构是“后进先出”的原则。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java初始化顺序
举报原因:
原因补充:

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