代码块:
定义:使用{}括起来的一段代码
1.普通代码块
出现在方法中的代码块,解决变量重命名的问题,代码块一定要写在方法变量名前.
2.构造块
定义在类中的代码块,不加任何修饰符. 优先于类中的构造方法执行,并且有多少对象产生,就调用多少次构造块。
3.静态代码块
定义在类中,并且使用static修饰的代码块
a.在非主类中的静态块
优先于构造快执行,无论有多少对象产生,静态块只执行一次. (在类加载时执行)
优先于构造快执行(在加载类时执行),与对象无关
b.在主类中的静态块
优先于主方法执行
例子:
class A{
public A(){
System.out.println("1.A类的构造方法");
}
{
System.out.println("2.A类的构造块");
}
static{
System.out.println("3.A类的静态块");
}
}
public class Day6 extends A{
public Day6(){
System.out.println("4.Day4的构造方法");
}
{
System.out.println("5.Day4的构造块");
}
static {
System.out.println("6.Day4的静态块");
}
public static void main(String[] args){
System.out.println("7.main方法开始");
new Day6();
new Day6();
System.out.println("8.main方法结束");
}
}
运行结果: