1、概念
构造函数是java函数中一种特殊的函数,定义方法为函数名与类名完全相同,比如我们定义一个学生类,定义其构造函数。
class Student{
private Integer id;
private String name;
private Integer age;
无参构造
public Strudent(){};
有参构造
pubilc Student(String id,String name,int age){
this.id=id;
this.name=name;
this.age=age;
}
注意点:
1、构造函数的名与类的名完全相同
2、构造函数无返回值类型
(3)构造函数可以有参数也可以没有参数,可以有一个参数或者多个参数
(4)可以对构造函数进行函数重载(在同一个类中定义多个函数名相同,参数不同的函数叫函数重载)
(5)当我们定义类后不声明任何构造函数,则java虚拟机会帮我们创建一个空参构造。假如我们声明了一个有参构造,java虚拟机就不会帮我们创建一个空参构造,此时我们想用空参构造创建一个对象,那么就必须在类中声明一个空参构造。
2.构造函数作用
构造函数是面向对象编程所需要的,它主要有两个作用:
(1)创建对象。使用“new 构造函数名()”来创建对象。
(2)对象属性设置初值。构造函数创建对象后,可以对对象属性设置初值,无参构造函数设置的是null或者0;有参构造设置的是相应的初值。
3.子类与父类的构造函数
构造函数不能继承,只能调用。子类构造函数中第一句有一个隐藏的super()语句,该语句是调用父类的空参构造函数。如果父类有一个有参构造,那么子类必须声明一个有参的super()函数,否则会报错。
4.构造函数私有化
private Student(){}
当构造函数私有后,我们不能在外部类中实例化这个类,也就是不能创建这个类的对象,只能在本类内部创建对象,然后对外提供返回对象的方法,此时提的对象是唯一的。供