gpt4 book ai didi

java - 使用额外参数扩展类

转载 作者:行者123 更新时间:2023-12-02 00:06:24 24 4
gpt4 key购买 nike

我有一个简单的问题。我有一个类,我用它来在 2 年内分割一个字符串:

public class Period {

int firstYear;
int secondYear;

Period () {

}

Period(String periode) {

String [] periodeSplit = periode.split("-");
this.firstYear = Integer.parseInt(periodeSplit[0]);
this.secondYear = Integer.parseInt(periodeSplit[1]);
}

public String toString() {

return "Firstyear: " + this.firstYear + "\n" + "Secondyear: " + this.secondYear;
}
}

我现在想扩展这个类,不是将数据拆分为 2 个不同的整数,而是拆分为 3 个不同的整数。因此,除了 2 个已经存在的整数变量之外,我还想要一个额外的变量。最简单的方法是什么?

感谢您的帮助!

亲切的问候,

基普特·斯克里迪

最佳答案

我认为创建更通用的类会更好(而且很容易),该类将能够处理您传递给它的任何数量的年份:

public class Period {

int[] years;

Period() {

}

Period(String periode) {

String[] periodeSplit = periode.split("-");
years = new int[periodeSplit.length];
for (int i = 0; i < periodeSplit.length; i++) {
years[i] = Integer.parseInt(periodeSplit[i]);
}
}

public String toString() {
String result = "";
for (int i = 0; i < years.length; i++) {
result += "Year " + i + ":" + years[i] + "\n";
}
return result;
}
}

如果原始类确实需要扩展,可以这样做:

class ExtendedPeriod extends Period {
int thirdPart;

ExtendedPeriod(String periode) {
String[] periodeSplit = periode.split("-");
this.firstYear = Integer.parseInt(periodeSplit[0]);
this.secondYear = Integer.parseInt(periodeSplit[1]);
this.thirdPart = Integer.parseInt(periodeSplit[1]);
}

public String toString() {
return "Day: " + this.firstYear + "\n" + "Month: " + this.secondYear
+ "\nYear: " + this.thirdPart;
}
}

我建议将变量名“firstYear”和“secondYear”更改为不同的名称,例如“firstPart”、“secondPart”,因为对于extendPeriod来说,它们不再是年(我将它们留在代码中,这样它就可以用你的,但将新的 int 称为“thirdPart”)。我不认为这是继承的最佳用途,但如果这是需要的话。我还想像这样重用Period中的toString:

public String toString2() {
return super.toString() + "\nThird part: " + this.thirdPart;
}

但要使其有意义,您必须更改 period 中的 toString 方法,不要调用值“年”。<​​/p>

关于java - 使用额外参数扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779705/

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