在之前学习字符串的时候,会见过这样一行代码:
String name = new String("HelloWorld")
其中String(“Hello World”)是调用构造方法。构造方法 是类中特殊方法,用来初始化类的实例变量,这个就是构造方法,它在创建对象(new运算符)之后 自动调用。
Java构造方法的特点:
构造方法名必须与类名相同。
构造方法没有任何返回值,包括void。
构造方法只能与new运算符结合使用。
构造方法
构造方法示例代码如下:
public class PersonDemo { // 名字 private String name; // 年龄 private int age; // 出生日期 private Date brithDate; // 构造方法 public PersonDemo(String name, int age , Date date){ this.name = name; this.age = age; this.brithDate = date; } }
默认构造方法
有时在类中根本看不到任何的构造方法。例如User类代码如下:
public class User { // 用户名 private String username; // 用户密码 private String password; }
从上述User类代码,只有两个成员变量,看不到任何的构造方法,但是还是可以调用无参数的构造方 法创建User对象,见如下代码。
User user = new User();
Java虚拟机为没有构造方法的类,提供一个无参数的默认构造方法,默认构造方法其方法体内无任何 语句,默认构造方法相当于如下代码:
//默认构造方法 public User() { }
默认构造方法的方法体内无任何语句,也就不能够初始化成员变量了,那么这些成员变量就会使用默 认值,成员变量默认值是与数据类型有关.
构造方法重载
在一个类中可以有多个构造方法,它们具体有相同的名字(与类名相同),参数列表不同,所以它们 之间一定是重载关系。
构造方法重载示例代码如下:
public class PersonDemo { // 名字 private String name; // 年龄 private int age; // 出生日期 private Date brithDate; // 构造方法 public PersonDemo(String name, int age , Date date){ this.name = name; this.age = age; this.brithDate = date; } public PersonDemo(String name, int age){ this.name = name; this.age = age; } public PersonDemo(String name, Date date){ this.name = name; this.brithDate = date; } public PersonDemo(int age , Date date){ this("name",age,date); this.age = age; this.brithDate = date; } public PersonDemo(){ } }
构造方法封装
构造方法也可以进行封装,访问级别与普通方法一样,有私有,公有,默认,保护四种级别。