java构造代码块的作用

请问java构造代码块的作用是什么?

第1个回答  2015-07-09
//构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。

public class CodeBlock02
{

{

System.out.println("第一代码块");

}

public CodeBlock02(){
System.out.println("构造方法");
}

{

System.out.println("第二构造块");
}
public static void main(String[] args){
new CodeBlock02();
new CodeBlock02();
new CodeBlock02();

}
}

/**
执行结果:
第一代码块
第二构造块
构造方法
第一代码块
第二构造块
构造方法
第一代码块
第二构造块
构造方法*/本回答被网友采纳
第2个回答  2013-07-16
第一,可以对成员变量进行初始化
第二,通常情况下默认的无参数的构造代码块是创建对象必须使用的。
第三,可以对创建对象提供多种方式,即构造函数重载本回答被提问者采纳
第3个回答  2013-07-17
构造代码块,在new对象时,构造代码块优先构造方法执行;
构造方法可以代替构造代码块吧。
如果有多个构造方法,可以把通用的步骤写在构造代码块里。

但如果有这种情况,我会选择写多一个抽象类来作为父类放这些通用的步骤,子类的构造方法用super();然后写其它内容。

确实我没有在项目中用过构造代码块。
第4个回答  2013-07-16
据我了解 有两种说法 :
第一种 :是JAVA 完全摒弃了构造代码块 就是说不存在构造代码块
原因:现实开发中没有见到过
第二种:是JAVA 存在构造代码块 但是开发中不用
作用:对 对象 进行初始化 与构造函数相似 执行在构造函数之前 并且只要建立一个对象,构造代码块都会执行一次 构造函数则不一定每个对象建立时都执行(多个构造函数情况下,建立对象时传入的参数不同 初始化使用对应的构造函数)

个人建议 不使用 构造代码块为好
相似回答