方法参考

时间:2013-11-10 16:50:55

标签: java arrays methods

我有一个任务是用两个方法和二维数组实现简单的java代码。 但是我找不到一些简单的错误。 这是行

  

的getArray(NC);

“nc”下划线标题为“可能尚未初始化”

   public static void main (String[] args) {
       int nc[][];
       getArray(nc);
       for (int i=0;i<nc.length;i++)
       {
           System.out.println();
           for(int k=0;k<nc.length;k++)
           {
               System.out.print(nc[k]+", ");
           }
       }
   }

   static void getArray(int[][]nc){
       for (int i=0;i<nc[0].length;i++)
       {
           for(int k=0;k<nc.length;k++)
           {
               nc[k][i]=1+(int)(Math.random()*100);
           }
       }    
   }
}

如果我喜欢这个

  

public static void main(int nc [] []){

它告诉我没有主要方法。感谢。

2 个答案:

答案 0 :(得分:1)

int nc[][];

以上行仅声明变量nc,它是int类数组的类型。但它没有初始化任何数组。变量的值为null

所以你需要创建一个数组:

int[][] nc = new int[10][10];
例如,

声明了nc变量,并为变量分配了一个10x10的二维数组(用0填充)。

public static void main (int nc[][])

这不会声明一个main方法,因为main方法必须将一个Strings数组作为唯一参数。这个字符串数组包含执行它时传递​​给程序的所有参数。例如:

java com.foo.bar.MyApp hello world

会使用包含com.foo.bar.MyApp"hello"的数组调用类"world"的main方法。

答案 1 :(得分:1)

在编写方法时,getArray(int[][])会收到一个数组并将其填满。但是,如果您查看main方法的开头,则永远不会对其进行初始化。

您可以在main方法中执行此操作:

public static void main (String[] args) {
    int nc[][] = new int [10][10]; // Or any other size
    getArray(nc);
...

然而,这并不像Java代码那样“感觉” - 感觉就像C.在Java中,因为我们有垃圾收集,并且不需要担心返回在方法中分配的对象,所以你可以重写{{ 1}}处理(并返回)分配:

getArray