构造函数,构造代码块

2017-05-07  本文已影响0人  云承寒
构造函数
调用
public static void main(String[] args) {
        new Demo("Test",18);
}

class Demo{

    public String name;
    public int age;

    public Demo(){
        构造函数没有返回值
        方法名与类名相同
    }

    对类对象进行初始化,允许以重载的形式存在多个构造函数
    public Demo(String name,int age){
        this.name = name;
        this.age = age;
        System.out.println(this.name+"\r\n"+this.age);
    }
}
构造代码块
class Demo{

    public String name;
    public int age;
    public static int count;

    
     其实构造代码块中的代码也是在构造函数中执行。
     .class文件经过Java编译器编译后,构造代码块中的代码会被移动到构造函数中,
     放置在构造函数中代码的最前端,
     
    {
        this.name = "Test";
        this.age = 18;
        System.out.println("只执行一次" + count);
    }

    静态代码块是在.class文件加载到内存时就马上执行,不需要等到创建对象
    由于类只加载一次,因此静态代码块只执行一次。
    static{
        count++;
        System.out.println("只执行一次" + count);
    }

    public void test(){
        {
            //局部代码块:缩短局部变量的生命周期,节省一点点内存,其实没什么作用
            System.out.println(name+"\r\n"+age);
        }
    }
}
class Demo {
    {
        i = 18;
    }
    Java编译器在编译时,会把成员变量的声明语句提前至一个类的最前端。
    注意,提到最前端的只是声明(private int i),实际的赋值还是按调用顺序。
    public int i = 19;

    public void test() {
        System.out.println(i + "输出19");
    }
}
上一篇 下一篇

猜你喜欢

热点阅读