普通代码块
直接写在方法中的代码块
构造代码块
将代码块直接定义在类之中的代码块叫做构造块,构造块随着每一次的类对象实例化进行调用。并且构造块中的代码优先于构造方法中的代码先执行
构造方法的主要作用是进行类对象初始化操作使用的,如果有一些先期的处理逻辑为了与构造方法的就够分开,就可以利用构造块的结构完成 。 如下:
class Ball{
private int size ;
private int maxSize ;
private int minSize ;
public Ball(int size){
if (size > minSize && size < maxSize) {
this.size = size;
}else {
this.size = -1 ;
}
}
{
maxSize = 12*2 ;
minSize = 1*2 ;
}
public int getSize(){
return this.size ;
}
}
public class Demo01 {
public static void main(String[] args) {
Ball ball = new Ball(25);
System.out.println("ball = " + ball.getSize());
}
}
静态块
静态块是使用static关键字定义的代码块,静态块的两种定义位置, 普通类中和主类中。静态块优先于构造块执行,并且不管有多少实例化对象,静态块只执行一次 。 在主类中也可以定义静态块,改静态块的执行优先于主方法执行。
public class Demo02 {
public static void main(String[] args) {
System.out.println("主方法中的代码");
}
static {
System.out.println("static定义的静态块中的代码");
}
}
运行结果:
static定义的静态块中的代码
主方法中的代码