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

Java 自定义类中的变量始终打印0,java,class,methods,Java,Class,Methods,所以我对编程非常陌生。我创建了一个简单的Calc类,虽然它是构造函数,但它可以得到2个数字。我创建了一个calcTotal方法,将这两个数字相加,并将它们放入一个名为total的变量中。然后我创建了一个printTotal方法,它只不过是System.out.println(total) 但是,当我在main中创建一个对象并调用printTotal方法时,它总是打印出0。我知道在我的Calc类中total被初始化为0。我不明白如何将计算出的总数从calcTotal方法传递到printTotal方

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

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

他是我的计算课

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();

 }
}
我知道这是一个超级初学者的问题,可能会被否决,但这让我很沮丧


感谢您提供的任何帮助

在调用打印方法之前,您从未调用过执行计算的方法
calcTotal()
,因此不会计算总和

但是无论如何,您不应该有两个这样的方法,因为可以通过让
calcTotal()
返回int值,然后调用代码可以打印它,或者对它执行任何操作来轻松防止此错误

public int calcTotal() {
    return numOne + numTwo;
}
大体上:

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

在调用printing方法之前,您从未调用执行计算的方法
calcTotal()
,因此从未计算总和

但是无论如何,您不应该有两个这样的方法,因为可以通过让
calcTotal()
返回int值,然后调用代码可以打印它,或者对它执行任何操作来轻松防止此错误

public int calcTotal() {
    return numOne + numTwo;
}
大体上:

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

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

public class HelloWorld{

 public static void main(String []args){

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

 }
}

您可能想考虑将CalcUnToE()函数添加到构造函数中。

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

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

public class HelloWorld{

 public static void main(String []args){

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

 }
}

您可能想考虑将CalcUnToE()函数添加到构造函数中。

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

“我创建了一个calcTotal类”。您没有创建
。您创建了一个
方法
calcTotal。谢谢,我没有注意到键入“我创建了一个calcTotal类”。您没有创建
。您创建了一个
方法
calcTotal。谢谢,我没有注意到输入错误,它不应该返回一个
int
?不过答案不错!谢谢你的帮助。我知道这是一个愚蠢的问题。它不应该返回一个
int
?尽管答案不错!谢谢你的帮助。我知道这是一个愚蠢的问题谢谢你的答案我投了赞成票,因为我不能选择多个正确答案谢谢你的答案我投了赞成票,因为我不能选择多个正确答案