构造代码块:
构造代码块的作用:给对象进行统一的初始化。 只要创建了对象 构造代码块的代码就会执行 无论参数有无
构造函数的作用: 给对应的对象进行初始化。
构造代码块的格式:
{
构造代码块
构造代码块的作用:给对象进行统一的初始化。 只要创建了对象 构造代码块的代码就会执行 无论参数有无
构造函数的作用: 给对应的对象进行初始化。
构造代码块的格式:
{
构造代码块
}
注意: 构造代码块的大括号必须位于成员 位置上。
代码块的类别:
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); //
}
}