Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助:从控制台输入int,并将其传递到不同类中的方法中,然后进行数学运算_Java - Fatal编程技术网

Java 需要帮助:从控制台输入int,并将其传递到不同类中的方法中,然后进行数学运算

Java 需要帮助:从控制台输入int,并将其传递到不同类中的方法中,然后进行数学运算,java,Java,我是初学者,需要帮助,请 我想从控制台读取可选数字“a”,然后将其存储在变量中,作为传递给不同类(不同的.java文件)的对象。并通过可选输入将总和分开计算 如何编写这两个类的代码?谢谢 /* * DemoApp.java */ public class DemoApp { public static void main(String[] args) { Scanner input = new Scanner(System.in); int a;

我是初学者,需要帮助,请

我想从控制台读取可选数字“a”,然后将其存储在变量中,作为传递给不同类(不同的.java文件)的对象。并通过可选输入将总和分开计算

如何编写这两个类的代码?谢谢

/*
* DemoApp.java
*/

public class DemoApp {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int a;
        System.out.println("Input one of the following 3 numbers: 100, 200, 300");
        System.out.print("Enter: ");
        a = input.nextInt();
        TestApplication testapp = new TestApplication();
        testapp.test(a);

    }
}


/*
 * TestApplication.java
 *
 */

public class TestApplication {

    private int a; 

    public void test(int a) {
        this.a = a; // TODO: where to get the "a"? (entered by users from console)

        System.out.println("The number_a was passed in: "+a);
    }

    protected void printNum() throws Exception {

        int num;


        switch (a) {
        case 100:
            num = num + 10;
            break;

        case 200:
            num = num + 20;
            break;

        case 300:
            num = num + 30;
            break;

        default:
            // TODO: unexpected number input. throw();
            break;

        }

                System.out.println("I got a sum number"+num);

    }

}

我只是想让我的问题对演示代码保持简单。呵呵:)

其次,我想从控制台分别输入3个数字,将其传递到第二个B类,在第二个B类中,我需要按照协议构建一个完全限定的消息(需要3个数字中的一个),然后将消息发送到RS-232端口。所有的编码/解码和发送/确认工作都由第三类C完成。 顺便说一句,第二类B源于第三类C

在演示代码中,似乎没有将“a”传递到printNum()方法中


任何帮助都将不胜感激

您的代码看起来不错。。。您想知道如何用两个这样的源文件编译Java程序吗?试试看

javac DemoApp.java TestApplication.java
java DemoApp

它应该会起作用。除非您使用的是NetBeans或Eclipse之类的IDE,否则在这种情况下,它们应该为您处理所有这些问题。

您的代码看起来不错。我没有看到的一件事是调用
printNum
方法。您可以在
test(int)
方法中对其进行调用,因此它如下所示:

 public void test(int a) {
    this.a = a; // TODO: where to get the "a"? (entered by users from console)
    System.out.println("The number_a was passed in: "+a);
    printNum();
 }
printNum
上的几点:

  • 方法中没有位置将抛出选中的异常,因此您应该从签名中删除
    抛出异常
  • 您对
    num
    变量执行数学运算,就好像它会被修改很多次一样,但是
    开关的每一种情况都会中断,并且方法中没有循环,因此应该不需要
    +=
    (这确实不应该编译,因为
    num
    在解除引用时不会被初始化)

也许是更具体的问题?传入“inta”的方式很好,不过您可以直接使用它,而不是使用类级别的“private inta”。