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

时间:2010-05-31 18:59:50

标签: java

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

我想从控制台读取可选数字“a”,然后将其存储在变量中,以用作传递给另一个类(不同的.java文件)。并通过可选输入来单独计算总和。

我如何编码2个类?感谢

/*
* 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);

    }

}

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

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

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

任何帮助都将非常感谢!

2 个答案:

答案 0 :(得分:0)

您的代码看起来很好......您是否想知道如何使用这样的两个源文件编译Java程序?尝试...

javac DemoApp.java TestApplication.java
java DemoApp

它应该有效。除非您使用的是NetBeans或Eclipse等IDE,否则它们应该为您处理所有这些。

答案 1 :(得分:0)

您的代码看起来很好。我看不到的一件事是调用你的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上的几个点:

  • 方法中没有throw选中Exception的位置,因此您应该从签名中删除throws Exception
  • 你在num var上执行数学运算,好像它会被多次修改一样,但switch的每个情况都会中断并且方法中没有循环,所以应该没有{{ 1}} required(这真的不应该编译,因为+=在被解除引用时不会被初始化。)