【问题标题】:Exchange values between classes/Methods在类/方法之间交换值
【发布时间】:2021-02-01 12:07:14
【问题描述】:

我最近在不同的课程中学习了 public、private 和 double 的用法。但由于某种原因,我不明白为什么这不起作用。我的意图是使用三个不同的类作为练习:我希望 Do() 生成从 0 到 20 的数字,并在不同的类中使用方法 for1() 在我的控制台上仅显示数字 0 到 10。有人可以解决这个问题吗?我不需要更短的代码或仅 1 个类中的代码,因为我需要它来使用许多类来教育自己。如果您可以使用这种设置解决此问题,我将感谢任何人。提前致谢。

public class MainM {
    public static void main(String[] args) {
        loop Q = new loop();
        Q.Do();
    }
}
//------------------------------------------------------
public class loop {
    public double b;
    Sum R = new Sum();   // Java shows the problem is here : at Sum.<init>(Sum.java:3)
    public void Do() {
        for (int i = 0; i < 10; i++) {
            b = b + 2;
            if (b <= 10) {
                R.for1();
            }
        }
    }
}
//--------------------------------------------------
public class Sum {
    loop Q = new loop();
    public void for1() {
        System.out.println("b " + Q.b);
    }
}

【问题讨论】:

  • 一个新循环创建了一个新的 Sum,它创建了一个新的循环,它创建了一个新的 ... 猜你得到了 StackOverflowException
  • 我该如何解决这个问题?

标签: java loops class methods


【解决方案1】:

您的 Sum 类只能使用 print 语句,并且方法 for1() 应该有一个参数。下面是我的建议

public class Sum {
  public void for1(double b) {
    System.out.println("b " + b);
  }
}

你的循环类将是

public class loop {
  public double b;
  Sum R = new Sum();

  public void Do() {
    for (int i = 0; i < 10; i++) {
      b = b + 2;
      if (b <= 10) {
          R.for1(b);
      }
    }
  }
}

【讨论】:

  • 这很好,但如果我有多个变量,我是否使用这些值创建一个数组并像... R.for1(array[]);...?还是有更好的方法?
  • 如果参数很多,可以使用数组或列表。我建议您开始阅读有关面向对象的编程并查看代码示例以理解概念,并且更容易正确使用对象的字段和方法
猜你喜欢
  • 2013-05-19
  • 2012-01-25
  • 1970-01-01
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2011-10-06
  • 2019-02-28
相关资源
最近更新 更多