关于构造方法
Java 构造方法有以下特点:
- 方法名必须与类名相同
- 可以有 0 个、1 个或多个参数
- 没有任何返回值,包括 void
- 默认返回类型就是对象类型本身
- 只能与 new 运算符结合使用
关于“返回值”:
通俗的来说,构造方法是没有返回值的
但是构造方法如果被加上了返回值类型,或声明了void类型,编译不会报错,被当成普通方法。
(实际上,类的构造方法可以理解为有返回值,是隐式的,可以把构造出的类的实例当成构造方法的返回值)
关于修饰符:
构造方法不能被static,final,abstract,synchronized,native修饰
构造方法不能被子类继承所以用final和abstract 修饰没有意义。多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要
构造方法可以被private修饰!:用于单例设计模式(一个类只允许存在一个特定的实例)
且需要:
(1)将构造方法私有化(此时的构造方法为private修饰),使其不能在类的外部通过new关键字实例化该类对象。
(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。
(3)定义一个静态方法返回这个唯一对象。
注意点:
1.类的构造方法不是要求必须定义的,如果类中没有任何一个构造方法,Java会隐式地生成一个默认的构造方法,不包含任何参数,方法体为空,如果类中显式地定义了一个或多个构造方法,则 Java 不再提供默认构造方法。
2.一个类可以有多个具有不同参数的同名构造方法(构造方法重载)