构造代码块

/* 构造代码块: 构造代码块的作用:给对象进行统一的初始化。 构造函数的作用: 给对应的对象进行初始化。 构造代码块的格式: { 构造代码块 } 注意: 构造代码块的大括号必须位于成员 位置上。 代码块的类别: 1. 构造代码块。 2. 局部代码块. 大括号位于方法之内。 作用:缩短局部 变量 的生 命周期,节省一点点内存。 3. 静态代码块 static */

class Baby{

    int id; //身份证

    String  name;  //名字

    //构造代码块...
    {
        //System.out.println("构造代码块的代码执行了......");

    }

    //带参构造函数
    public  Baby(int i , String n){
        id  = i;
        name = n;
    }

    //无参构造方法
    public Baby(){
    }

    public void cry(){
        System.out.println(name+"哇哇哭...");
    }   
}



class Demo4 
{
    public static void main(String[] args) 
    {
        Baby b1 = new Baby(110,"狗娃");  // 狗娃 狗剩 铁蛋
        System.out.println("编号:"+ b1.id + " 名字:"+b1.name);
        /* System.out.println("编号:"+ b1.id + " 名字:"+b1.name); new Baby(112,"狗剩"); new Baby(); */
        /* new Baby(110,"狗娃"); new Baby(112,"狗剩"); new Baby(); */
    }
}
/* 构造 代码块要注意的事项: 1. java编译器编译一个java源文件的时候,会把成员变量的声明语句提 前至一个类的最前端。 2. 成员变量的初始化工作其实都在在构造函数中执行的。 3. 一旦经过java编译器编译后,那么构造代码块的代码块就会被移动构造 函数中执行,是在构造函数之前执行的,构造函数的中代码是最后执行的。 4. 成员变量的显示初始化与构造代码块 的代码是按照当前代码的顺序执行 的。 */
class Demo5 
{



    //构造函数
    public Demo5(){   //构造函数
        i = 300000000;  
    }

    //构造代码块 //构造代码块的初始化
    {
        i = 200000000;
    }

    int i = 100000000;   //成员变量的显初始化



    public static void main(String[] args) 
    {
        Demo5 d = new Demo5();
        System.out.println("i = "+d.i); // 双、吴、刘 :2000 :
    }
}

你可能感兴趣的:(构造代码块)