注意事项和使用细节一:
- 一个类可以定义多个构造器,即构造器重载。
比如:我们可以再给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;}}
