2015-02-03 2 views
-1

У меня есть домашнее задание, где я должен передать 2D-массив методу, этот метод принимает 2D-массив в качестве параметра и выводит таблицу. У меня хорошо работает таблица, проблема в том, что я не могу понять, как вызвать этот метод из моего основного метода без конструктора.Передача параметров и вызов метода без конструктора

Я знаю, что очевидное решение состоит в том, чтобы просто сначала создать конструктор и использовать его, но, к сожалению, я не могу из-за требований домашней работы.

Может кто-нибудь, пожалуйста, просто скажите мне, как я могу назвать этот метод, передать параметр и распечатать таблицу из основного метода БЕЗ создания метода конструктора? Спасибо.

Как я получаю: pgm1.java:75: error: non-static method arrays(int[][]) cannot be referenced from a static context
arrays(tenBy); ^ 1 error

public class pgm1 

{

public void arrays(int[][] userArray) 
{ 

    int rowTotal = 0; 
    int colTotal = 0; 
    int allTotal = 0;  


    //For loop to populate array, find total values of all odd rows, 
    //all even columns, and all total index values 
    for (int i = 0 ; i < userArray.length ; i++) 
    { 

     for (int h = 0 ; h < userArray.length ; h++) 
     {   
      userArray[i][h] = i * h; 
      System.out.printf("%3d" , userArray[i][h]); 

      //Running total of all index values 
      allTotal += userArray[i][h]; 

      //Running total of all odd rows 
      if (i % 2 == 1) 
       rowTotal += userArray[i][h]; 

      //Running total of all even columns 
      if (h % 2 == 0) 
       colTotal += userArray[i][h];      
     } 
     System.out.println();   

    } 

    //Print all totals 
    System.out.println("\n Total of odd numbered rows: " + rowTotal); 
    System.out.println(" Total of even numbered columns: " + colTotal); 
    System.out.println(" Total of all numbers: " + allTotal); 
} 


public static void main(String[] args) 
{ 

    //Creating 2D Array 
    int[][] tenBy = new int[10][10]; 

    //arrays(); 

    arrays(tenBy);  

} 

}

+6

Если я подчеркиваю ** нестатический метод **, что это говорит вам? –

+0

Спасибо, Сотириос, ты приятель за жизнь :) – hazy7687

ответ

1

Изменить

public void arrays(int[][] userArray) 

в

public static void arrays(int[][] userArray) 

JLS-8.4.3.2. static Methods говорит (частично),

Метод, который объявлен static называется метод класса.

и

Метод, который не объявлен static вызывается метод экземпляра , а иногда называют не- static метод.

+0

Спасибо Эллиот, я очень ценю это :) – hazy7687

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