代码块

定义在方法或语句中,用{}来划清界限

分类:

局部代码块,构造代码块,静态代码块

1.局部代码块:定义在方法或者是语句里面

特点: 用 { } 来划定代码的区域

           方法和类都是用代码块的方式划定边界的

package com.oracle.demo11;

public class one {
    public static void main(String[] args) {
        {
            int a=1;
            System.out.println("普通代码块"+a);
        }
        int a=10;
        System.out.println("代码块之外"+a);
    }
}

2.构造代码块:

定义在类的成员(成员变量,成员方法)位置的代码块

特点:

优先于构造方法执行,用于所有对象的初始化动作

每创建一个新的对象都会执行一次构造代码块

package com.oracle.demo11;

public class three {
    String name;
    int age;
    {
        System.out.println("这是构造代码块");
    }
    public void eat(){
        System.out.println("吃饭");
    }
}
package com.oracle.demo11;

public class two {
    public static void main(String[] args) {
        three th=new three();
        th.eat();
        three th2=new three();
        th2.eat();
        three th3=new three();
        th3.eat();
    }
}

3.静态代码块:

定义在成员位置,使用static修饰的代码块

特点:

优于主方法和构造方法执行,当以任意的形式使用到该类的时候执行一次

该类不管创建多少对象,都只执行一次

可以给静态变量赋值,用来初始化类

package com.oracle.demo11;

public class four {
    int age;
    String name;
    static{
        System.out.println("静态构造方法");
    }
    public void eat(){
        System.out.println(age+"的"+name+"吃饭");
    }
}
package com.oracle.demo11;

public class five {
    public static void main(String[] args) {
        four fo=new four();
        fo.name="小刘";
        fo.age=18;
        fo.eat();
        four fo1=new four();
        fo1.name="小孙";
        fo1.age=18;
        fo1.eat();
    }
}

 

posted @ 2018-09-27 11:20  井盖同学  阅读(343)  评论(0编辑  收藏  举报