代码块:直接用{}括起来的一段语句。
建议:尽可能不要去使用。
1.普通代码块:
写在方法里面,可以区别局部变量,其实没什么用。例子就不举了。
2.构造块:
写在类里面
class Person{
public Person(){
System.out.println("构造方法");
}
{
System.out.println("构造块");
}
}
public class Test {
public static void main(String[] args) {
new Person();
new Person();
}
}
执行结果:
分析:
1.构造块优先于构造方法执行。
2.若有多个对象,则构造块也会像构造函数一样执行多次。
3.静态块:
使用了static定义的代码块:static{}
1.在非主类中使用:
class Person{
public Person(){
System.out.println("构造方法");
}
{
System.out.println("构造块");
}
static{
System.out.println("静态块");
}
}
public class Test {
public static void main(String[] args) {
new Person();
new Person();
}
}
执行结果:
分析:
1.优先于构造块和构造函数,且不管有多少对象,他只执行一次。
2.用于初始化一个东东。
3.用得比较少
2.在主类中定义使用:
public class Test {
static{
System.out.println("主类中的静态块");
}
public static void main(String[] args) {
System.out.println("Main方法执行了");
new Person();
new Person();
}
}
分析:
1.静态块优先于主方法执行。
2.在JDK1.7之后,将不能使用静态块代替主方法。
3.这个在测试中使用比较多。