Java 如何求和值

Java 如何求和值,java,Java,请帮我解决我的问题。我如何得到和值 public class Exe { int sum; public int sumAB(int a,int b) { sum=a+b; return sum; } } public class Test { public static void main(String[] args){ Exe e= new Exe(); e.sumAB(2,3);

请帮我解决我的问题。我如何得到和值

public class Exe {
    int sum;
    public int sumAB(int a,int b) {
        sum=a+b;
        return sum;
    }
}

public class Test {
    public static void main(String[] args){
        Exe e= new Exe();
        e.sumAB(2,3);
        System.out.println(e);
    }
}
或者直接打印值而不指定变量

 public static void main(String[] args){
    Exe e= new Exe();
    System.out.println(e.sumAB(2,3));
}

您需要使用一个变量来保存方法返回的值的结果。代码中有提供适当解释的注释。另外,请注意,我正在使用
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
变量的结果,该变量在
Exe
类中具有相同的
sum
字段值。另一种解决方案是重写
Exe
类中的
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();
        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
。为什么?因为当向
字符串添加任何内容时,它会将其连接起来,
15
是将
1
5
连接起来的结果


简而言之:最好使用一个变量来保存方法返回的值的结果。

只是为了好玩,这是一种与OP的原始思路相匹配的替代方法(如果有点奇怪)。在
Exe
中重写
toString
,将使测试代码按预期执行

public class Exe {
    int sum;
    public int sumAB(int a,int b) {
        sum=a+b;
        return sum;
    }

    public String toString() {
        return String.valueOf(sum);
    }
}
解释:将对象传递给打印方法时,打印方法通过调用对象的
toString
方法将该对象转换为
字符串。如果您的对象没有显式实现
toString
(或从实现的类继承),这将导致调用
object\toString
。这很少特别有用,因为它只是打印出对象的类和散列代码。通过显式定义
toString
方法,您可以获得OP似乎期望的行为


正如我在回答开始时所说的,这种方法有些异想天开。有关更合理的方法,请参阅其他答案。

您可以从外部访问实例的字段,除非这些字段是私有的

public class Exe {
   int sum;
   (...)

System.out.println(e.sum);

查看
toString()
方法以及调用方法和方法返回类型。您可能希望首先参考Java教程。欢迎使用SO。既然你是新来的,你就应该参加考试。我还建议读一些。@SotiriosDelimanolis
toString
方法与此无关=\@SotiriosDelimanolis我的问题是如何获取此的总和值您需要从
sumAB
方法恢复
sum
而不是使用
toString
方法。当然,使用
toString
是一种可能的解决方案,但不是最准确的方法。请使用不同的标识符。不要让他认为你说的是与
Exe
@SteveP中相同的
sum
。你的意思是对
sum
使用不同的名称?是的。我发现初学者容易混淆变量的范围/认为标识符在某些情况下必须相同。@SteveP。答案更新并添加了正确的解释。
+1
@Luiggi Mendoza,我看到了。请参阅解释部分。
public class Exe {
   int sum;
   (...)

System.out.println(e.sum);