当new一个对象时,先判断是否调用的构造函数有参数,
如果有参数,则根据参数的个数、类型来自动调用相应
的构造函数构造对象,分配内存,并返回对象的引用。“如果定义了一个带参数的构造方法后,就一定要定义一个
不带参数的构造方法,否则就不能创建新对象(无参数)。”
因为当构造一个类的对象时,编译器首先判断类是否有
构造函数,如果没有,则自动加上一个默认构造函数,
而一旦发现有构造函数后,则不再自动加上构造函数。
转而认为你没有用类的合法的构造函数而报出编译错误。