【问题标题】:How to Print a specific point from an array from another method ? #Java如何从另一种方法的数组中打印特定点? #Java
【发布时间】:2014-06-27 19:32:58
【问题描述】:
public class NewTest {

    public static void main(String[] args)
    {
        String [][] table;
        table = new String [4][4];
        for(int y=0; y<4; y++){
            for(int x=0; x<4; x++){
                table[y][x] = " ~  " ;
            }   
        }
        int y, x;
        for(y=0; y<4; y++)
        {   
           System.out.print(y+": ");
           for(x=0; x<4; x++)
               System.out.print(table[y][x]+" ");
           System.out.println();
        }                   
    }
    public void table ()
    {           
          System.out.println(table[2][2]);
    }
}

//这是我有问题的那一行! System.out.println(table[2][2]);

【问题讨论】:

  • 有点跑题了;但是,如果您对变量和方法使用相同的名称,事情会变得非常混乱。在这里,您有一个名为table 的变量和一个名为table 的方法。我强烈建议重命名其中之一。通常,变量的最佳名称是名词或名词短语,方法的最佳名称是动词或动词短语。

标签: java arrays printing


【解决方案1】:

问题在于String [][] table 对于声明它的方法是本地的,因此对类的其他方法不可见。

有两种让它可见的方法:

  • 使String [][] table成为封闭类中的static成员(因为mainstatic),或者
  • String [][] table 作为参数传递给函数。

第二种解决方案通常更好:

// Here is the declaration of a method taking 2D table
public static void showTableCell(String [][] table) ...
...
// Here is a call of that method from main():
showTableCell(table);

【讨论】:

  • 所以通过保留第一个方法相同的第二个方法应该是 // public static void showTableCell(String [][] table) {showTableCell(table);} } // 如果是,它是不工作!
  • @user3784420 不,showTableCell(table) 属于 main(String[] args) 的正文。 showTableCell 的主体就是你现在在 table 方法中的内容(我重命名了方法,使其名称与表的名称不同)。
猜你喜欢
  • 2016-02-11
  • 1970-01-01
  • 2016-10-25
  • 2021-08-11
  • 2020-08-02
  • 2013-12-25
  • 2015-10-09
  • 2016-02-23
  • 2021-11-18
相关资源
最近更新 更多