1.构造代码块
2.局部代码块
1.构造代码块
构造代码块在类中定义,作用是初始化对象,那有人问了,那跟构造函数有什么区别呢?构造函数可以有多个,例如有A,B,C三个构造函数,他们如果都有System.out.println(“HI”); 这一个语句的话,就可以把这个语句放到构造代码块中,就是多个构造函数共有的东西可以放到构造代码块中。
如:
public class Main {
public static void main(String[] args)
{
Person per1 = new Person();
Person per2 = new Person(22,"zje");
}
}
class Person{
private String country; //定义了String country
private String name;
private int age;
{ /*构造代码块*/
country = "China";
System.out.println(country);
}
Person()
{
System.out.println("no message");
}
Person(int age,String name)
{
this.age = age;
this.name = name;
System.out.println("name:"+name+","+"age:"+age);
}
}
打印结果:
China
no message
China
name:zje,age:22
可以看出,每一个对象创建时,都会调用构造代码块的代码。
2.局部代码块
在方法中的代码块就叫局部代码块。局部代码块中的变量会随着代码块的结束而释放。
若有一个局部代码块:
public void test()
{
{//局部代码块
int x=3;
}
System.out.println(x);
}
结果出错,因为 x 在局部代码块结束时就会释放,所以是打印不出x的值的,当然这个特性构造代码块也一样。