【问题标题】:Variable in custom class always prints 0自定义类中的变量总是打印 0
【发布时间】:2017-01-26 01:45:06
【问题描述】:

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

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

hetes 我的 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();

 }
}

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

感谢您的帮助

【问题讨论】:

  • 我创建了一个 calcTotal 类”。你没有创建class。你创建一个methodcalcTotal。
  • 谢谢,我没注意到那个错字

标签: java class methods


【解决方案1】:

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

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

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

主要:

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

【讨论】:

  • 不应该返回int吗?
  • 不错的答案!
  • 感谢您的帮助。我知道这是一个愚蠢的问题
【解决方案2】:

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

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

【讨论】:

  • 感谢您的回答我赞成,因为我不能选择超过一个正确的
猜你喜欢
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
相关资源
最近更新 更多