Constructors are invoked after the instance variables of a newly created object of the class have been assigned their default initial values and after their explicit initializers are executed.
构造方法是新创建的对象的实例变量缺省初始化以及显式初始化之后才执行的
------摘自<think in java>
不可能的吧????
构造,顾名思义,就是构造一个对象
构造方法是新创建的对象的实例变量缺省初始化以及显式初始化之后才执行的
------摘自<think in java>
不可能的吧????
构造,顾名思义,就是构造一个对象
解决方案 »
- 【提问】为什么窗口运行后不能点击叉叉关闭窗口,而且实现不了功能
- Java Socket 连接超时问题
- 在JAVA中,怎样实现点击一个按钮就运行相应的批处理文件?
- 我是java初学者,现在要编一道java题,帮帮哦……?
- 如何更好的理解和学习类,对象,请高手指教
- 一个奇怪的问题,有关java的图形操作!很怪!
- 链接SQLSERVER7.0为什么取不到表?
- 双缓冲无法解决frame闪屏问题求教
- 如何把string类型转换为datetime类型?各位的救我!
- 谁知道用JAVA怎么取得网络内的机器ip地址?
- 求教:Exception in thread "main" java.lang.StackOverflowError
- 实现把一个文件夹中的文件(仅文件)复制到另一个文件夹。
public class InitialOrderTest { // 静态变量
public static String staticField = "静态变量";
// 变量
public String field = "变量"; // 静态初始化块
static {
System.out.println(staticField);
System.out.println("静态初始化块");
} // 初始化块
{
System.out.println(field);
System.out.println("初始化块");
} // 构造器
public InitialOrderTest() {
System.out.println("构造器");
} public static void main(String[] args) {
new InitialOrderTest();
}
}从运行结果你就能看出来构造函数的执行顺序了?
出自THE Java™ Programming Language, Fourth Edition
不是Thinking In Java上的。
这句话其实说对或者不对都有道理。
严格的说,执行流程先到达构造方法,然后去执行直接初始化语句,再执行构造方法里的代码。中间有两次跳转,单步可以 发现。
看bytecode,编译器把默认初始化语句和构造方法里的语句都编译到<init>方法中去了,不过直接初始化语句在前,原来构造方法里的语句在后而已。