目录
构造方法简介
构造方法是一种特殊的方法,用于初始化对象。创建构造方法有以下几个规则:
- 构造方法名=类名
- 构造方法不能明确返回类型
- 一个类可以有多个不同参数的构造方法
- 构造方法不能被abstract,static,final和syncchronized关键字修饰
构造方法有以下两种类型:
- 默认构造方法(无参数构造方法)
- 带参构造方法
默认构造方法
没有任何参数的构造方法称为默认构造方法
所有类都会有构造方法,即使你没有显性的写出来,编译器也会自动生成无参数的默认构造方法
public class construct {
public static void main(String[] args) {
}
}
执行以上代码不会有任何输出,但是编译器编译后的class文件会自动生成构造方法
public class construct {
public construct() { /* compiled code */ }
public static void main(java.lang.String[] args) { /* compiled code */ }
}
带参构造方法
有一个或者多个参数的构造方法称为带参构造方法
带参构造方法以满足实例对象的初始化,用于为不同的对象提供不同的值
带参构造方法也是一种方法,因此能够像普通方法一样重载,编写不同参数的构造方法以满足实例化对象所需的不同值
public class construct {
private String userName;
private int userID;
//#1 带有两个参数的构造方法
public construct(String userName, int userID) {
this.userName = userName;
this.userID = userID;
}
//#2 带有一个参数的构造方法
public construct(String userName) {
this.userName = userName;
}
//#3 无参数构造方法,类中已经有带参构造方法,如果你需要用到无参数构造方法,必须写出来,如果不需要用到则可以删除以下代码
public construct() {
}
void constructMethod1() {
System.out.println(this.userName + this.userID);
}
void constructMethod2() {
System.out.println(this.userName);
}
void constructMethod3() {
System.out.println("不需要任何参数就能实现的代码");
}
public static void main(String[] args) {
//#1构造方法的初始化
construct construct1 = new construct("construct1 user", 1);
construct1.constructMethod1();
//#2构造方法的初始化
construct construct2 = new construct("construct1 user");
construct2.constructMethod2();
//#3构造方法的初始化
construct construct3 = new construct();
construct3.constructMethod3();
}
}
构造方法和普通方法的区别
构造方法 | 普通方法 |
---|---|
构造方法用于实例化对象 | 普通方法是被对象调用处理数据的行为 |
构造方法不能有返回类型 | 普通方法有返回类型,除了void声明的方法 |
构造方法是隐性调用 | 普通方法是显性调用 |
构造方法必须和类名相同 | 普通方法可以和类名相同,也可以和类名不同,建议普通方法不要和类名相同,即使你可以那样做 |