自定义类中的变量始终打印0

时间:2017-01-26 01:45:07

标签: java class methods

所以我对编程非常陌生。我已经创建了一个简单的Calc类,虽然它是构造函数,却可以得到2个数字。我创建了一个calcTotal method,它将这两个数字加在一起,并将它们放在一个名为total的变量中。然后我创建了一个printTotal方法,它只是System.out.println(total);

然而,当我在main中创建一个对象并调用printTotal方法时,它总是打印出0.我理解在我的Calc类中total总被初始化为0。我不明白如何将计算的总数从calcTotal方法传递给printTotal方法。如果我在CalcTotal方法中放置System.out.println(total),则在main中调用我得到正确的总数。

加快我的Calc课程

public class Calc{

private int numOne;
private int numTwo;
private int total;

 public Calc(int numOne, int numTwo){
    this.numOne = numOne;
    this.numTwo = numTwo;
 }

   public void calcTotal(){

    total = numOne + numTwo;

 }

  public void printTotal(){

    System.out.println(total);
 }
}

和我的主要

public class HelloWorld{

 public static void main(String []args){

    Calc myCalc = new Calc(3,5);
    myCalc.printTotal();

 }
}

我知道这是一个超级初学者的问题,但它可能会被低估,但令我感到沮丧。

感谢您的帮助

2 个答案:

答案 0 :(得分:6)

在调用打印方法之前,你永远不会调用calcTotal()这个进行计算的方法,因此永远不会计算总和。

但无论如何,你不应该有两个这样的方法,因为这个错误可以很容易地被阻止,只需让calcTotal()返回int值,然后调用代码可以打印它,或者做任何事情想要它。

public int calcTotal() {
    return numOne + numTwo;
}

在main中:

Calc myCalc = new Calc(3,5);
System.out.println("total: " + myCalc.calcTotal());

答案 1 :(得分:3)

您永远不会在打印之前计算总数。你的主要应该是这样的。

public class HelloWorld{

 public static void main(String []args){

    Calc myCalc = new Calc(3,5);
    myCalc.calcTotal();
    myCalc.printTotal();

 }
}

您可能需要考虑将calcTotal()函数添加到构造函数中。

 public Calc(int numOne, int numTwo){
    this.numOne = numOne;
    this.numTwo = numTwo;
    calcTotal();
 }