构造代码块:定义在类的成员位置,直接使用{ },在{}中写代码内容。
位置:类中,方法外,和方法并列,和先后位置无关。
执行时机:创建对象的时候执行一次。在构造方法隐式3步的最后一步。当构造代码块执行结束之后,开始执行构造方法本身的代码内容
格式:
public class ClassName{
// 构造代码块
{
// 执行语句
}
}
构造代码块和构造方法执行顺序:
class ConsCode{
// 成员变量
int a;
int b;
// 空参构造
public ConsCode() {
//System.out.println("HelloWorld!");
System.out.println("11我在构造代码块执行结束之后执行...");
}
// 给变量a赋值的构造
public ConsCode(int a) {
this.a = a;
System.out.println("22我在构造代码块执行结束之后执行...");
//System.out.println("HelloWorld!");
}
// 给变量ab同时赋值的构造
public ConsCode(int a , int b) {
this.a = a;
this.b = b;
//System.out.println("HelloWorld!");
System.out.println("33我在构造代码块执行结束之后执行...");
}
// 构造代码块
{
System.out.println("构造代码块!。。。。。。。。。。。。。。。");
}
}
public class ConstructorCodeDemo {
public static void main(String[] args) {
// 分别使用3个构造方法创建对象,并运行程序,显示执行3遍HelloWorld!
ConsCode c1 = new ConsCode();
ConsCode c2 = new ConsCode(10);
ConsCode c3 = new ConsCode(10,20);
}
}