Нужна помощь: введите int из консоли и передайте его в метод другого класса и сделайте математику - PullRequest
0 голосов
/ 31 мая 2010

я новичок, нужна помощь, пожалуйста !!!

Я хочу прочитать необязательное число «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);

    }

}

Я просто хотел, чтобы мой вопрос был простым для демонстрационного кода. хе-хе:)

Суть в том, что я хочу отдельно ввести 3 номера с консоли, передать их во второй класс B, во второй класс B, мне нужно создать полное сообщение, следуя протоколу (одно из 3 чисел). будет необходимо), а затем отправьте сообщение на порт RS-232. вся работа по кодированию / декодированию и отправке / подтверждению выполняется третьим классом C. Кстати, второй класс B является производным от третьего класса C.

в демонстрационном коде кажется, что "a" не передается в метод printNum ().

любая помощь будет очень ценится!

Ответы [ 2 ]

0 голосов
/ 31 мая 2010

Ваш код выглядит нормально. Единственное, что я не вижу, это вызов вашего 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, как если бы она изменялась много раз, но каждый случай switch прерывается, и в методе нет цикла, поэтому += не требуется на самом деле не должен компилироваться, так как num не будет инициализирован во время разыменования).
0 голосов
/ 31 мая 2010

Ваш код выглядит нормально ... Вам интересно, как скомпилировать программы на Java с двумя исходными файлами, как это? Попробуйте ...

javac DemoApp.java TestApplication.java
java DemoApp

и это должно работать. Если вы не используете IDE, такую ​​как NetBeans или Eclipse, в этом случае они должны обработать все это для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...