java笔记--静态代码块,构造代码块,构造函数执行顺序

2018-03-31  本文已影响0人  吃饱喝足搬代码丶
//静态代码块先执行,有对象构造代码块先执行然后构造函数
class StaticCode{
    static int num;
    static
    {
        num=10;
        System.out.print("hahah");
    }
    StaticCode(){}
    static void show(){
        System.out.print(num);
    }
}
class Person{
    private String name;
    {//构造代码块,可以给所有对象初始化
        //System.out.println("person run");因为一创建对象,构造代码块就执行一次,所以可换位cry()
        cry();//直接在这里调用,所有的对象就都有了
    }
    Person()//是给对应的对象进行针对性的初始化
    {
        name="baby";
        //cry();
    }
    Person(String name){
        this.name=name;
        //cry();
    }
    public void cry(){
        System.out.println("wawa");
        {
            //局部代码块,限定局部变量的生存周期
        }   
    }
    public void speak(){System.out.println("name:"+name);}
    static void show(){System.out.println("show run");}
}
class test {

    static
    {
        //System.out.print("a");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Person p1=new Person();
        p1.speak();
        Person p2=new Person("wc");     
        p2.speak();
        new Person();
        //Person.show();

        
    }

}

运行: image.png
上一篇下一篇

猜你喜欢

热点阅读