Java | 构造函数和默认构造函数

79 阅读1分钟

一、构造函数

构造函数是一种特殊类型的方法,用于在创建对象时初始化对象的状态。构造函数的名称必须与类名相同,没有返回类型,甚至不能定义为void
demo

public class Student {
    String name;
    int age;
    // 构造函数
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // 成员方法
    public void display() {
        System.out.println("学生姓名: " + name + ", 年龄: " + age);
    }
}
public class ConstructorDemo {
    public static void main(String[] args) {
        Student student1 = new Student("Alice", 20);
        student1.display(); // 输出:学生姓名: Alice, 年龄: 20
    }
}

二、默认构造函数

如果一个类中没有显式定义构造函数,Java编译器会自动插入一个无参数的默认构造函数,这个构造函数不执行任何操作。
demo

public class DefaultConstructorDemo {
    String name;
    public void displayName() {
        System.out.println("名称: " + name);
    }
    public static void main(String[] args) {
        DefaultConstructorDemo demo = new DefaultConstructorDemo();
        demo.name = "默认构造函数";
        demo.displayName(); // 输出:名称: 默认构造函数
    }
}

三、构造函数的重载

类可以有多个构造函数,只要它们的参数列表不同。这被称为构造函数重载。
demo

public class ConstructorOverloading {
    int id;
    String name;
    int age;
    // 第一个构造函数
    public ConstructorOverloading(int i, String n) {
        id = i;
        name = n;
    }
    // 第二个构造函数
    public ConstructorOverloading(int i, String n, int a) {
        id = i;
        name = n;
        age = a;
    }
    public void display() {
        System.out.println(id + " " + name + " " + age);
    }
    public static void main(String[] args) {
        ConstructorOverloading s1 = new ConstructorOverloading(111, "Karan");
        ConstructorOverloading s2 = new ConstructorOverloading(222, "Aryan", 25);
        s1.display(); // 输出:111 Karan 0
        s2.display(); // 输出:222 Aryan 25
    }
}

以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~