【问题标题】:How can I get the ints returned from another class?如何获取从另一个类返回的整数?
【发布时间】:2018-07-19 17:24:01
【问题描述】:

我有一个计算机数学课程项目,我们需要输入 3 个系数 (ax^2 + bx + c) 并使用二次公式来计算零点。这对我们来说不会太难,但我们必须将工作分成不同的资源类和一个驱动程序类。

大纲:https://imgur.com/a/0Mn3m

到目前为止,这就是我所拥有的

import java.util.Scanner;

public class coEff
{
    public int coEff()
    {

        int a, b, c;
        double root1, root2, root3, d;

        Scanner s = new Scanner(System.in);

        System.out.print("Enter the A coefficient");
        a = s.nextInt();

        System.out.print("Enter the B coefficient");
        b = s.nextInt();

        System.out.print("Enter the C coefficient");
        c = s.nextInt();

        return coEff();

    }

}

二等:

import java.util.Scanner;

public class calcZeroes
{
    public int calcZeroes()
    {
        coEff coEff = new coEff();
        coEff.coEff();

        int a, b, c;
        double root1, root2, root3, d;

        return calcZeroes();
    }
}

我有计算公式的代码,但它不起作用,因为系数没有初始化。任何帮助将不胜感激:)

【问题讨论】:

  • 对此并不完全确定,因为我有一段时间没有使用 java,但我认为您可以为此使用 getter 和 setter。获得数据后,立即在第二类中设置值。或者您可以在第二个类中使用构造函数,其中参数是 3 int,然后在构造函数内部分配值

标签: java int return


【解决方案1】:

我假设您是 Java 新手,因为您的整个类结构都乱了套。对于初学者,Bami 建议您返回班级名称。在 java 中,“多态性”的概念描述了一种语言通过单一、统一的接口处理各种类型和类的对象的能力。因此,您可以创建 coEff 类并在那里进行计算并在驱动程序类中获取用户输入。您可以将驱动程序类中的变量作为参数传递给 coEff 方法。

  import java.util.Scanner;

  public class coEff{

  public int coEff(int a, int b, int c){
  int result;

  //do the calculation here.

  return result;
  }
}

在您的驱动程序类中,您获取输入并使用 coEff 对象将这些输入作为参数传递给您的 coEff 方法。

 import java.util.*;

 public class Driver{

 public static void main(String [] args){
  int a,b,c;
  Scanner input = new Scanner(System.in);

  System.out.println("Enter co-efficient A:\n");
  a = input.nextInt();

  System.out.println("Enter co-efficient B:\n");
  b = input.nextInt();

  System.out.println("Enter co-efficient C:\n");
  c = input.nextInt();

  coEff coeff = new coEff();

  System.out.println(coEff.coEff(a,b,c));
 }
 }

附带说明:除非是构造函数,否则不要对类和方法使用相同的名称。

编辑:如果您需要在单独的类中获取输入,您仍然可以使用相同的概念,而不是在驱动程序中获取输入,只需将其放在不同的类中并调用coEff 方法并在驱动程序中打印结果。

【讨论】:

    【解决方案2】:

    您将在每节课结束时返回您的班级名称。它只是递归地调用你的类。 (甚至可能会出错,我之前没有尝试过)。在您的情况下,您应该只返回一个 int 值。 例如

    `int something = 0;
     return something;`
    

    【讨论】:

    • 你到底想在第一节和第二节课上做什么?
    • 哦,好吧,所以如果我把这两行代码替换为每个 int,System.out.print("Enter the B coefficient");当我在控制台中输入 int 时,行会改变它的值吗? coEff 类是接受系数的输入,我发布到 imgur 的链接是项目的大纲和详细信息哪个类做什么
    • “System.out.print”行对您提供的 int 值没有任何作用。它只是将您提供给它的参数(字符串)输出到控制台,让用户更好地了解正在发生的事情。
    • @Carteeeer 我现在会检查您的链接,看看发生了什么。但是你可以看看萨尔曼的回答。它解释了很多。
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2021-11-28
    • 2018-10-07
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多