小知识点——构造代码块

在java的学习过程中遇到了一个小知识点,就是构造代码块,感觉有点用,就记录一下。。

举个例子:

class Person
{
    private int age;
    Person(int n)           //构造函数
    {
        if(n>0)
            age=n;
        else
            System.out.println("false");
    }
    {
        cry();              //构造函数块
    }
    public void cry()
    {
        System.out.println("cry.....");
    }
    public int getAge()
    {
        return age;
    }
};
构造代码块的作用是初始化不同对象的相同部分,如例子所示,不管对象是什么,均会cry,所以在一开始初始化对象时就执行构造代码块,而且构造代码块优先于构造函数,也就是说,先执行构造代码块在执行构造函数,与位置无关。。

class Demo
{
    public static void main(String[] args)
    {
        Person p = new person(-4);
    }
};
===========================================
结果:
cry...........
false





原文地址:https://www.cnblogs.com/ZouCharming/p/3868836.html