Как использовать статическую переменную int при работе с аргументами?

Итак, нам поручили создать программу, содержащую 5 методов. Пользователю необходимо ввести число в терминал, и это число будет общей переменной, которая будет использоваться всеми методами.

я знаю это

статическое целое число = Integer.parseInt (аргументы [0])

будет строка, используемая для сканирования того, какой номер будет использоваться. Моя проблема связана с тем, как именно я буду использовать указанную строку. Это дает мне ошибку, когда я помещаю его вне основного метода, и я не могу использовать его для неосновных методов.


person salmonade    schedule 22.06.2017    source источник


Ответы (3)


статическое целое число = Integer.parseInt (аргументы [0])

Вы получите ошибку времени компиляции, используя эту строку, потому что у вас не может быть локальной статической переменной.

Вместо этого вы должны сделать это:

static int num; 
public static void main([]args){
    num  = Integer.parseInt(args[0]);

   // Then use num where you want.
}
person Neeraj Jain    schedule 22.06.2017

Причина, по которой вы не можете написать эту строку вне основного метода, заключается в том, что args находится вне области видимости. Поэтому вам следует объявить num вне main, а затем назначить его внутри main.

Снаружи main:

static int num;

Внутри main:

num = Integer.parseInt(args[0]);
person Sweeper    schedule 22.06.2017

Ваш класс должен быть чем-то вроде

public static void main(String [] args) {

     Scanner scan = new Scanner(System.in);
     System.out.println("enter number");
     // this variable does not need to be static, local is better
     int myNum = scan.nextInt();
     Main main = new Main();
     main.method1 (myNum);
     main.method2 (myNum);
     main.method3 (myNum);
     main.method4 (myNum);
     main.method5 (myNum);
 }

private void method1(int myNum) {
}

// repeat for each new method
person Scary Wombat    schedule 22.06.2017