首页 > 编程笔记 > Java笔记 阅读:73

Java类的构造方法(非常详细,附带实例)

构造方法是 Java 类里一种特殊的方法,用于初始化对象的状态。

学习构造方法之前,相信读者已经掌握了 Java 类中普通成员方法的使用。构造方法和普通方法的区别有以下几点:
构造方法的主要作用有两个:
合理利用构造方法可以提高代码质量,正确初始化对象。构造方法示例代码如下:
public class Person {
    // 实例变量
    String name;
    int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
在上面的示例中,定义了一个名为 Person 的类,该类有两个实例变量 name 和 age,用于表示人的姓名和年龄。

然后,定义了一个构造方法public Person(String name, int age),这个构造方法接收两个参数 name 和 age,并在创建 Person 对象时使用这些参数来初始化对象的实例变量。

在构造方法内部,使用 this 关键字来引用当前对象,以区分参数与实例变量的名称。关于 this 关键字的用法,请阅读《Java this关键字详解(3种用法)》一文。


当创建 Person 对象时,可以通过调用构造方法并传递参数来初始化对象的实例变量,例如:
public class Main {
    public static void main(String[] args) {
       // 使用构造方法创建 Person 对象并初始化实例变量
       Person person1 = new Person("Alice", 25);
       Person person2 = new Person("Bob", 30);
   }
}
在上述示例中,通过调用构造方法Person("Alice", 25)Person("Bob", 30)来创建两个 Person 对象 person1 和 person2,并初始化它们的 name 和 age 实例变量。这样,就可以在创建对象时直接传递参数,并自动完成对象的初始化工作。

Java默认构造方法

在 Java 类中,如果没有显式定义任何构造方法,编译器会自动提供一个默认的构造方法。默认构造方法没有参数,也不执行任何操作,仅仅是为了保证对象的实例化过程能够顺利进行。
public class Person {
    String name;
    int age;

    // 默认构造方法(编译器自动添加)
    public Person() {
        // 编译器自动添加空的构造方法体
    }
}
在上述示例中,使用默认构造方法 Person() 来创建 Person 对象 person,并初始化对象的实例变量。由于默认构造方法没有参数,因此可以直接使用空括号 new Person() 来创建对象。

需要注意的是,如果在类中显式定义了任何构造方法(无论是有参构造方法还是无参构造方法),编译器将不再提供默认构造方法,此时必须自己显式定义需要的构造方法。如果希望使用无参构造方法,同时又定义了其他构造方法,可以通过显示定义一个无参构造方法来实现。

Java构造方法重载

构造方法与普通方法一样,也可以被重载。构造方法重载是指一个类中有多个参数不同的构造方法。

重载构造方法主要有以下两种场景:
示例代码如下:
class Rectangle {
    double length;
    double width;

    // 无参构造方法
    public Rectangle() {
       this.length = 0.0;
       this.width = 0.0;
    }

    // 构造方法重载:带两个参数
    public Rectangle(double length, double width) {
       this.length = length;
       this.width = width;
    }

    // 构造方法重载:带一个参数,用于创建正方形
    public Rectangle(double side) {
       this.length = side;
       this.width = side;
    }
}
在上述示例中,定义了一个名为 Rectangle 的类,该类表示一个矩形对象。这个类有两个实例变量 length和width,分别用于表示矩形的长度和宽度。

通过重载构造方法,提供了三种不同的初始化方式:
使用构造方法重载,我们可以根据不同的需求创建不同类型的矩形对象,示例代码如下:
public class Main {
    public static void main(String[] args) {
        // 创建矩形对象,使用不同的构造方法进行初始化
        Rectangle rectangle1 = new Rectangle(); // 使用无参构造方法
        Rectangle rectangle2 = new Rectangle(5.0, 3.0); // 使用带两个参数的构造方法
        Rectangle square = new Rectangle(4.0); // 使用带一个参数的构造方法
    }
}

相关文章