注意事项和使用细节一:
- 一个类可以定义多个构造器,即构造器重载。
比如:我们可以再给Person类定义一个构造器,用来创建对象的时候,只指定人名,不需要指定年龄。
- 构造器名和类名要相同。
- 构造器没有返回值。
- 构造器是完成对象的初始化,并不是创建对象。
- 在创建对象时,系统自动调用该类的构造方法。
代码演示:
public class Main {
public static void main(String[] args) {
Person p1 = new Person("WTY1",19);//第一个构造器
System.out.println("p1的信息如下:");
System.out.println("p1的姓名:" + p1.name + " p1的年龄:" + p1.age);
Person p2 = new Person("WTY2");//第二个构造器
System.out.println("p2的信息如下:");
System.out.println("p2的姓名:" + p2.name + " p2的年龄:" + p2.age);
}
}
class Person{
String name;
int age;
//第一个构造器
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//第二个构造器,只指定人名,不指定年龄。
public Person(String name) {
this.name = name;
}
}
注意事项和使用细节二:
如果自己没有定义构造器,系统会自动给类生成一个默认的无参构造器(也叫默认构造器)比如:
Person(){ }
一旦定义了自己的构造器,默认构造器就被覆盖了,就不能再使用默认的无参构造器了,除非自己写一个无参构造器,如:
Person(){ }
代码演示:
public class Main {
public static void main(String[] args) {
//Person p = new Person();//报错,默认构造器被覆盖。
}
}
class Person{
String name;
int age;
//如果自己没有定义构造器,系统会自动给类生成一个默认的无参构造器(也叫默认构造器)
/*
默认构造器
Person(){
}
*/
//一旦定义了自己的构造器,默认构造器就被覆盖了,就不能再使用默认的无参构造器了
// 除非自己写一个无参构造器
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}