使用来自不同类的方法的java
我对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”)。我的第一个想法是使用类似于我上面使用的整数的东西。toString,但事实证明您不能这样做(即使controlNumber类中的字段是int)。因此,我想从上面使用我的方法(在另一个类中),因为它可以实现我想要的大部分功能,但我不知道如何实现
我希望我有道理,希望有人能帮助我找到解决问题的方法
# 1 楼答案
我的方法是:
首先,创建一个用于格式化整数的实用函数:
现在,您可以从其他类中使用此实用程序代码:
及
# 2 楼答案
如果有两个以上类型的字段,称为a和b
您不需要显式调用toString(),因为这是一种行为。唯一的区别是,如果a或b为null,这将打印“null”,而调用toString()将抛出NullPointerException
顺便说一句,你可以把你的方法缩短到
# 3 楼答案
我假设你的意思是有一个类
SomeClass
,它有两个类型为ControlNumber
的字段,你想实现SomeClass.toString()
来打印这些字段的组合值。如果是这样的话,你可以这样做:更新:
正如Peter所指出的,对
number.toString()
的显式调用可以省略,因此上述内容可以重写为: