您需要使用一个变量来保存该方法返回的值的结果。代码有注释,提供了正确的解释。另外,请注意,我使用sumVar
变量来表明它与类中的变量不同,Exe
尽管它具有相同的值。
public class Test {
public static void main(String[] args){
Exe e= new Exe();
//declaring variable sumVar
int sumVar;
//assigning the value returned of e.sumAB into the sumVar variable
sumVar = e.sumAB(2,3);
//printing the value of sumVar
System.out.println(sumVar);
}
}
请注意,在此代码中,我正在打印类中具有相同字段sumVar
值的变量的结果。另一种解决方案可以通过覆盖类中的方法来完成:sum
Exe
toString
Exe
public class Exe {
int sum;
public int sumAB(int a,int b) {
sum=a+b;
return sum;
}
@Override
public String toString() {
return Integer.toString(sum);
}
}
public class Test {
public static void main(String[] args){
Exe e= new Exe();
e.sumAB(2,3);
//this method will automatically call e.toString for you
System.out.println(e);
}
}
请注意,与toString
单个字段属性值处理相比,该方法更多地用于提供信息。什么?我的意思是该toString
方法最常用于显示对象的当前状态,而不是用于返回字段的值。让我们看一个例子:
public class Exe {
int sum;
public int sumAB(int a,int b) {
sum=a+b;
return sum;
}
@Override
public String toString() {
return Integer.toString(sum);
}
}
public class Test {
public static void main(String[] args){
Exe e= new Exe();
int sumVar;
sumVar = e.sumAB(2,3);
//print the value of sum
System.out.println(sumVar);
//print the value of sum using e.toString()
System.out.println(e);
//now, printing the result of adding 1 to sum
System.out.println(1 + sumVar);
//since you're adding a number you have to explicitly use toString() method
System.out.println(1 + e.toString());
}
}
结果:
5
5
6
15
在最后一个代码示例中,我们将看到它打印5
为 的值sumVar
和5
的值e.toString()
。然后,我们需要打印1 + sum
并使用这两种方法,我们看到它打印1 + sumVar
=6
和1 + e.toString()
= 15
。为什么?因为当向 a 添加任何内容时,String
它会将其连接起来,并且15
是与 连接的1
结果5
。
简而言之:最好使用变量来保存方法返回的值的结果。