
地 址:北京市房山区66号
电 话:18950499166
邮 箱:95183042@qq.com
new关键字创建数组实例,使用并将其(qi)赋值给(gei)类的到数(shu)成员变量。,中的组中,构造(zao)“java,器何public class MyClass { ,使用 private int[] myArray;,到数,中的组中 public MyClass(int size) { ,构造(zao) myArray = new int[size];,器何 },使用},到数“在Java中,构造器是一个特殊的方法,用于初始化一个类的对象(xiang),构造器的名称与类名相(xiang)同,没有返回类型(即使是void也不需要),并且可以有(you)参数,构造器的主要作用是创建对象并对其进行初始化。
1、无(wu)参构造器


无参构造器是最简单的构造器,它没有任何参数(shu),当创建一个对象时,如果没有(you)提供任何参数,那么无参构造器将被调用。

public class Person { private String name; private int age; // 无参构造器 public Person() { name = "未知"; age = 0; }}2、有参构造器(qi)
public class Person { private String name; private int age; // 有参构造(zao)器 public Person(String name, int age) { this.name = name; this.age = age; }}3、重载构造器
在(zai)同一个类中,可以有(you)多个构造器,它(ta)们具有相(xiang)同的名称但参数列表不同,这就是构造器的重载。
public class Person { private String name; private int age; // 无参构造器 public Person() { name = "未知"; age = 0; } // 有参构造器1 public Person(String name) { this.name = name; age = 0; // 默认年(nian)龄为0 } // 有参构造器2 public Person(int age) { this.name = "未知"; // 默认姓名为"未知" this.age = age; }}4、链式(shi)构造器
public class Person { private String name; private int age; private String address; // 有参构造器1(包含地址) public Person(String name, int age, String address) { this.name = name; this.age = age; this.address = address; // 调用另一个有参构造器2(只包含地址)来初始化address属性 }}1、构造器不(bu)能被继承,因(yin)此子类的构造器必(bi)须通过(guo)调(diao)用父类的(de)构造器来初始化父类的属性,可以使用super()关键字来实现这一点。
public class Student extends Person { private String school; private String major; // 子类构造(zao)器调用父类构造器来初始化父类属性(Person)和子类属性(School, Major) public Student(String name, int age, String school, String major) { super(name, age); // 调用父类Person的有参(can)构造器1来初始化name和age属性 this.school = school; // 初始化子类属性school和major属性(省略了super()调用) this.major = major; // 省略了super()调用,因为父类Person没有与这两个属性相关的构造器(如果有,需(xu)要添加相应(ying)的(de)super()调用) }}2、如果一个类没有定义任何构造器,那么编译器会(hui)自动为该类生成一个默认的无参构造器,如果已经定义了一个或多个构造器,那(na)么编译器将不(bu)再自(zi)动生成(cheng)默认的无(wu)参构造器,如果需要使用默认的无参构造器,需要在类中显式地定义一个。
public class Person { // 没有显式(shi)定义无参构造器,编译器将(jiang)不会自动生成默认的无参构造器(如果没有(you)其他构造器) private String name; // ...其他属性和方法...}