代码块:用{}的括起来的就叫代码块
* 代码块的分类:
* 1、普通块:定义在方法中用{}括起来的就是普通代码块
* 2、构造块:定义在类中的用{}括起来的就是构造代码块
* 构造块中的代码,会被加载到每一个构造器(构造方法前面)
* 特殊情况除外,比如使用this(参数);调用有参的构造方法,因为这一句必须放在首行
* 所以就不会在将构造块的代码加载到首行,简单来说冲突了
* 3、静态块:加上static使用{}括起来的就是静态块,优先级最高
* 4、同步块(以后补充)
* 执行顺序:静态块--》构造块--》构造器--》普通块
*/
package Note;
public class Demo {
//属性
int a;
static int sa;
//方法
public void dynamic(){
System.out.println("----b");
//{}这个就是普通块,在方法中定义
{
System.out.println("这是普通块");
int num = 10;
System.out.println(num);
}
//System.out.println(num);
}
public static void state(){
System.out.println("-----qq");
}
//方法外的块就是,构造块
{
System.out.println("这是构造块---");
}
//构造方法
public Demo(int a){
this("楠");//对应二的特殊情况
this.a = a;
}
public Demo(String name){
}
public Demo(){
System.out.println("这是个空构造器");
}
//代码块
static {
System.out.println("这是静态块");
}
//在类载入之前就被载入,所以不用输出任何东西便可执行出"这是静态块",这句话,他的优先级是最高的
public static void main(String[] args) {
//创建对象
Demo d = new Demo();
d.dynamic();
Demo d1 = new Demo();
d1.dynamic();
}
}