代码块的分类

/**
*代码块:用{}的括起来的就叫代码块
* 代码块的分类:
* 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();
    }
}

你可能感兴趣的:(分类,java,数据挖掘)