构造函数是一种特殊的函数,也叫构造方法。构造函数名必须与类名相同,不用指定返回值类型(包括void),不可以写return语句。
作用:构造函数的作用是给对象初进行始化,在创建对象时会自动调用类的构造函数。构造函数一般为public类型,这样才能在程序的任意位置创建实例——对象。
细节:每一个类都至少有一个构造函数,如果没有创建构造函数,java提供一个默认的无参构造函数,方法体为空。当在类中自定义了构造函数后,默认的构造函数就没有了。
运行:构造函数是在对象一建立就运行。给对象初始化。而一般方法是对象调用才执行,是给对象添加对象具备的功能。一个对象建立,构造函数只运行一次。而一般方法可以被对象调用多次。
什么时候定义构造函数?
当分析事物时,该事物存在具备一些特性或行为,那么将这些内容定义在构造方法中。
构造代码块:对象一建立就运行,而且优先于构造函数执行。
和构造函数区别:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。构造代码块中定义的是不同对象共性的初始化内容。
关于继承:子类不能继承父类的构造函数,当子类继承父类时,子类会隐式或显示的调用父类的构造函数。当父类只含有无参构造函数时,子类会隐式的调用父类的无参构造函数。当父类的构造函数为有参数时,子类的构造函数的第一行通过关键字super加父类构造函数的括号来显示的调用父类的构造函数。
关于构造函数中的this:
(1)只可以在无参构造函数中的第一句使用this调用有参构造函数。
(2)在构造函数中使用this关键字时,必须作为构造函数的第一条语句。
(3)只能在构造函数中使用this关键字来调用所在类中的其它构造函数。
(4)只能使用this关键字调用其它构造函数,而不能使用方法名直接调用构造函数。