Передача логического параметра методу - PullRequest
0 голосов
/ 06 мая 2020

Когда я пытаюсь передать логический параметр, который объявлен локально в другом методе, компилятор выдает ошибку:

Ошибка: (40, 71) java: не удается найти символ символа: переменная frei
location: class flugVerein

метод, который получает переданную логическую переменную:

public static void verfügbar(int[] flugAnzahl, String[] vorname, String[] bezeichnung, int[] zeit, boolean frei) 

где объявлена ​​переменная:

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();
    boolean frei = false;

вызов метода в основном методе:

verfügbar(flugAnzahl, vorname, bezeichnung, zeit, frei);

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Вы не можете получить доступ к переменной frei, поскольку используете другой метод. Он был объявлен в методе ganzeTag, но вы пытаетесь получить к нему доступ в методе main. Вы можете сделать несколько вещей. На мой взгляд, самый простой способ - сделать его полем.

private static boolean frei;

Затем в методе ganzeTag:

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();
    frei = false; // don't put the boolean.

На самом деле вам даже не нужна эта строка, потому что значение по умолчанию для логического поля - false.

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();
1 голос
/ 06 мая 2020

@ Jwan Я думаю, вы имеете в виду локальную переменную.

...