2013-11-26 2 views
3

Я так смущен. Мне нужно создать конструктор для создания массива 2d с параметрами, вызванными из основного метода. Каждый раз, когда я вызываю 2D-массив Seats в другом методе того же класса, я получаю сообщение об ошибке. Почему это и как использовать массив, который я создал в конструкторе?Создание экземпляра 2d-массива в конструкторе java?

class MovieSeating 
{ 

public MovieSeating(int rowNum, int columnNum) 
{ 
    String [][] Seats = new String[rowNum][columnNum]; 
    for (int r = 0; r < rowNum; r++) 
    { 
     for (int c = 0; c < columnNum; c++) 
     { 
      Seats[r][c] = "???"; 
     } 
    } 
} 

private Customer getCustomerAt(int row, int col) 
{ 
    System.out.println("Customer at row " + row + " and col " + col + "."); 
    System.out.println(Seats[row][col]); 

} 
+0

'Я получаю error', что ошибка? –

+1

Невозможно найти символ. – CuriousFellow

+1

Я добавил следующий метод, чтобы вы могли видеть, что я делаю. – CuriousFellow

ответ

0
class MovieSeating{ 

private String[][] seats; 

public MovieSeating(int col, int row){ 
    seats = new String[row][col]; 
} 
} 

Сделать места экземпляр переменной для увеличения его объема.

0

Seats не известен в main, он известен только в рамках конструктора.

Вы должны сделать его class member и инициализировать его в конструкторе:

class MovieSeating { 
    private String [][] Seats; 
    .. 
    public MovieSeating(int rowNum, int columnNum) { 
     Seats = new String[rowNum][columnNum]; 
     .. 
    } 
} 
+0

Я не уверен, как это исправить. – CuriousFellow

+0

@ user2875661 См. Учебник, к которому я привязал вас, и посмотрим мое обновление. – Maroun

3

Вы находитесь на правильном пути, но вы должны сделать переменную Seats экземпляра, чтобы получить правильные результаты:

private String [][] Seats; 
public MovieSeating(int rowNum, int columnNum) 
{ 
    Seats = new String[rowNum][columnNum]; 
    for (int r = 0; r < rowNum; r++) 
    { 
     for (int c = 0; c < columnNum; c++) 
     { 
      Seats[r][c] = "???"; 
     } 
    } 
} 
1

Объявите массив вне конструктора в качестве частной переменной:

class MovieSeating 
{ 
    private String [][] Seats; 
public MovieSeating(int rowNum, int columnNum) 
{ 
    Seats = new String[rowNum][columnNum]; 
    for (int r = 0; r < rowNum; r++) 
    { 
     for (int c = 0; c < columnNum; c++) 
     { 
      Seats[r][c] = "???"; 
     } 
    } 
} 

private void getCustomerAt(int row, int col) 
{ 
    System.out.println("Customer at row " + row + " and col " + col + "."); 
    System.out.println(Seats[row][col]); 

} 
} 
0

Вот я посылаю код отрезала я надеюсь, что это поможет у

public Charts(int graph_min, int graph_max, double[] dataset, int stepSize,double[][] percentRange) { 
 

 
//here double[][]={{10},{100}}; 
 
\t \t this(graph_min,graph_max,dataset); 
 
\t \t this.stepSize = stepSize; 
 
\t \t 
 
\t \t System.out.println("double constructor "+percentRange.length); 
 
\t \t this.percentRange = new double[percentRange.length][percentRange[0].length]; 
 
\t \t System.out.println("percentRange: "+this.percentRange); 
 
\t \t for (int i = 0; i < percentRange.length; i++) { 
 
\t \t \t 
 
\t   for (int j = 0; j < percentRange[i].length; j++) { 
 
\t    \t this.percentRange[i][j] = percentRange[i][j]; 
 
\t    \t System.out.println("ps_Axis constructor valuesd "+this.percentRange[i][j]); 
 
\t   } 
 
\t   
 
\t }

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