2015-10-30 2 views
-3
public static void main(String[] args) { 
System.out.println(Planes.p_array[0][0]); 
flight_GUI form = new flight_GUI(); 
Scanner input = new Scanner (System.in); 
for (int u = 0; u<1;){ 
    for (int x = 0; x<1;){ 
     System.out.println("Would you like to book a flight? yes/no"); 
     String answer = input.nextLine(); 
     if (answer.equalsIgnoreCase("yes")) 
     { 
      form.setVisible(true); x=1; 
     } 
     else{ 
      System.out.println("Okay!");x=0; 
     } 
    } 
}} 


public class Planes{ 
public static String[][] p_array = new String [5][5];{ 
     p_array[0][0] = "hello" }} 

Когда я вызываю p_array [0] [0] из класса Planes, он печатает «null», а не «hello». Как я могу сделать так, чтобы он печатал все, что я ввел в массив.Java 2D 2D массив

+0

System.out.println (planes.p_array [0] [0]); появляется с ошибкой – Dullah

+1

Самолеты не выглядят так, как будто они инициализированы. – ergonaut

+0

Какая ошибка? –

ответ

0

Проблема в вашем коде заключается в том, как вы пытаетесь получить доступ к массиву. Если у вас есть такой код, как у вас, у вас есть одна из двух вещей, которые вам нужно сделать. Вы должны будете исследовать детальные различия между 2 самостоятельно, но я дам вам краткое резюме

public class plane { 
    public String[][] p_array = new String [5][5];{ 
      p_array[0][0] = "3"; 
} 

Код выше описывает нестатический класс. Плоскость - это только проект в некотором смысле. Он не существует, поэтому вы не можете просто позвонить plane.p_array!

Метод 1 включает creeating в экземпляр вашего самолета класса, и он будет работать с самолета класса, как это:

public static void main(String[] args) { 
     plane planeObject = new plane(); //create instance of your plane class 
     System.out.println(planeObject.p_array[0][0]); 
     //the rest of your code 
} 

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

//the rest of code is the same 
public class plane { 
    public static String[][] p_array = new String [5][5];{ 
      p_array[0][0] = "3"; 
} 

Если вы хотите знать различия между 2 смотреть различия «Static» и «Instance» членов.

+0

Это избавило от ошибки, однако теперь, когда она печатает то, что у меня есть в массиве в [0] [0], она выводит «null», когда я установил ее в «3» (или что-то еще) , – Dullah

Смежные вопросы