2013-11-26 64 views
3

我很困惑。我需要创建一个构造函数来创建一个2d数组,其中包含从main方法调用的参数。每当我在同一个类的另一个方法中调用Seats 2D数组时,我会得到一个错误。为什么是这样的,我如何使用我在构造函数中创建的数组?在java构造函数中实例化2d数组?

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

Seatsmain中是未知的,它只在构造函数的范围内是已知的。

你应该让一个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 }

相关问题