构造函数在初始化中起着至关重要的作用。但是你知道吗? java 在一个类中,可以有多个结构函数?这个概念被称为结构函数重载,它是一个允许您根据提供的参数以不同的方式创建对象的功能。在本文中,我们将深入讨论结构函数重载,探索其好处,并查看实际示例。
构造函数重载是什么?java 重载中的构造函数 这意味着同一类中有多个结构函数,每个结构函数都有不同的参数列表。结构函数通过参数的数量和类型来区分。这允许您根据实例对象中可用的数据创建具有不同初始状态的对象。
为何要使用构造函数重载?构造函数重载非常有用,有几个原因:
- 灵活性:它提供了多种创建不同初始值的对象的方法。
- 方便:您的类用户可以根据他们的信息选择调用哪个构造函数。
- 代码可重用性:它允许默认设置,并且仍然使用自定义。
让我们考虑一个 employee 类的简单示例,看看构造函数重载在实践中是如何工作的:
public class employee { private string name; private int id; private double salary; // constructor 1: no parameters public employee() { this.name = "unknown"; this.id = 0; this.salary = 0.0; } // constructor 2: one parameter (name) public employee(string name) { this.name = name; this.id = 0; this.salary = 0.0; } // constructor 3: two parameters (name and id) public employee(string name, int id) { this.name = name; this.id = id; this.salary = 0.0; } // constructor 4: three parameters (name, id, and salary) public employee(string name, int id, double salary) { this.name = name; this.id = id; this.salary = salary; } public void displayinfo() { system.out.println("name: " + name + ", id: " + id + ", salary: " + salary); } }
它是如何工作的?
在上面的 employee 类中:
立即学习“Java免费学习笔记(深入);
- 构造函数 1 它是一种无参构造函数 name、id 和 salal 设置默认值。
- 构造函数2允许name设置,id和salary默认为0。
- name和id可以设置构造函数3,而salary仍然默认为0。
- 构造函数 4 所有三个字段都可以灵活设置:姓名,id 和薪水。
这是一个关于如何在主类中使用这些构造函数的例子:
public class main { public static void main(string[] args) { // using the no-argument constructor employee emp1 = new employee(); emp1.displayinfo(); // output: name: unknown, id: 0, salary: 0.0 // using the constructor with one argument employee emp2 = new employee("alice"); emp2.displayinfo(); // output: name: alice, id: 0, salary: 0.0 // using the constructor with two arguments employee emp3 = new employee("bob", 123); emp3.displayinfo(); // output: name: bob, id: 123, salary: 0.0 // using the constructor with three arguments employee emp4 = new employee("charlie", 456, 50000.0); emp4.displayinfo(); // output: name: charlie, id: 456, salary: 50000.0 } }
构建函数链接
java 还允许您使用 this() 从同一类中的另一个构造函数中调用一个构造函数。它被称为构造函数链,对重用代码非常有用:
public Employee(String name) { this(name, 0, 0.0); // Calls the constructor with three parameters }
在这个例子中,参数(name)构造函数调用了三个参数的构造函数,为id和salary提供了默认值。
记住- 重载规则:构造函数的参数列表必须不同(数量、类型或两者)。它们不仅可以有不同的返回类型(构造函数没有返回类型)。
- 默认构造函数:如果构造函数没有定义,java 提供默认的无参结构函数。但是,如果您定义了任何结构函数,除非您明确定义它,否则不会提供默认结构函数。
- 用户灵活性:你们班的用户可以根据自己的需要以多种方式初始化对象。
- 简化代码:有助于避免单个构造函数中参数列表过长,提高代码的可读性和可维护性。
java 构造函数重载是在使用多个构造函数创建类别时提供灵活性和便利性的功能。通过提供多种方法来实例一个类别。
以上是Java 请关注图灵教育的其他相关文章,了解构造函数重载的详细内容!