gpt4 book ai didi

java - 链接多个构造函数

转载 作者:行者123 更新时间:2023-11-30 06:05:10 25 4
gpt4 key购买 nike

我知道,当链接构造函数时,必须在主构造函数的第一行完成,有人可以解释一下如何处理下面的代码。我想链接到所有构造函数,以便除了主构造函数之外它们都可以是私有(private)的。

public class Flight {

int passengers = 0;
int seats = 150;
double maxKgPerPassenger;

private Flight(int passengers) {
this.passengers = passengers;
}

private Flight(int seats) {
this.seats = seats;
}

private Flight(double maxKgPerPassenger) {
this.maxKgPerPassenger = maxKgPerPassenger;
}

public Flight(int passengers, int seats, double maxKgPerPassenger) {
this(passengers);
this(seats);
this(maxKgPerPassenger);
}

}

最佳答案

构造函数可以设置尽可能多的字段或完全构造一个实例。

您选择一个具有较多参数的构造函数,并在具有较少参数的构造函数中使用它。例如,

public Flight(double maxKgPerPassenger) {
this(0, 0, maxKgPerPassenger); // default, default, maxKgPerPassenger
}

private Flight(int passengers, int seats, double maxKgPerPassenger) {
this.passengers = passengers;
this.seats = seats;
this.maxKgPerPassenger = maxKgPerPassenger;
}

I want to chain to all constructors so that they can all be private other than the main constructor.

我建议采取相反的方式。将您要使用的所有构造函数设为 public,但如果您不使用它,则将全参数构造函数设为 private

您尝试采用的方法类似于 the builder pattern其中每个方法设置一个字段。如果争论越来越多,你绝对需要看看它。

关于java - 链接多个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47381699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com