gpt4 book ai didi

java - 使用不同类的方法

转载 作者:行者123 更新时间:2023-11-30 05:08:27 26 4
gpt4 key购买 nike

我对 Java 还很陌生,这让我很困惑。

我有两个类。其中一个 (controlNumber) 有两个用于数字的 int 字段,一个是当前数字,一个是最大数字(一旦当前数字达到此值,它将重置为 1)。构造函数将当前数字初始化为 1 并将最大值作为参数(并检查最大值是否为正且小于 100)。
在方法中,我有一种返回当前数字,一种返回最大数字,一种将最大值设置为当前数字,一种将当前数字加 1(使其接近最大值),最后一种返回字符串与当前数字,如果当前数字只有一位数字,则在前面添加“0”(因此 5 变为 05)。
toString 看起来像这样:

public String toString()
{
if (currentNumber > 9) {
return Integer.toString(currentNumber);
}
else {
return ("0" + Integer.toString(currentNumber));
}
}

这个类工作得很好。
第二节课是我开始遇到问题的地方。它有两个属于上述类别的字段。构造函数使用两个不同的最大值来初始化它们。这一切似乎都有效。
现在我需要一个 toString 方法,它将返回一个字符串,其中包含两个字段的当前值,如果它是一位数字,则前面有一个“/”和“0”(因此,如果天是 3,月份是 11,它将返回“03/11”)。我的第一个想法是使用类似于我上面使用的 Integer.toString 的东西,但事实证明你不能这样做(即使 controlNumber 类中的字段是整数)。所以然后我想到使用上面的方法(位于不同的类中),因为它可以完成我想要的大部分操作,但我不知道如何做。

我希望我说得有道理,并且有人可以帮助我弄清楚如何解决我的问题。

最佳答案

如果您有两个上述类型的字段,称为 a 和 b

public String toString() {
return a + "/" + b;
}

您不需要显式调用 toString(),因为无论如何这就是行为。唯一的区别是,如果 a 或 b 为 null,则将打印“null”,而调用 toString() 将抛出 NullPointerException。

顺便说一句,您可以将方法缩短为

public String toString() {
return (currentNumber > 9 ? "" : "0") + currentNumber;
}

关于java - 使用不同类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291855/

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