JAVA - 无法调用我的数组方法

时间:2015-09-18 08:05:14

标签: java arrays methods call

Eclipse说:' chiffres无法解析为变量',如何修复调用方法?

public class Table {

public static void main(String[] args) {


    Tableau1 table = new Tableau1();


    table.CreerTable();
    table.AfficherTable(chiffres);

}}

部分: 和类Tableau1与数组:声明它

public class Tableau1 {
int [][] chiffres;
int nombre;
public void CreerTable(){

    int[][] chiffres= {{11,01,3},
                        {12,02,4},
                        {12,03,5}};
    //edited
    this.chiffres=chiffres;


}

public int[][] AfficherTable(int[][] chiffres){
    this.nombre=12;
    for(int i=0;i<2;i++){

    System.out.println("essai"+chiffres[i][1]);
    if(chiffres[i][0]==nombre){System.out.println("ma ligne ="+chiffres[i][0]+","+chiffres[i][1]+","+chiffres[i][2]);
                                };

                        }
                        return chiffres;
}

}

非常感谢

3 个答案:

答案 0 :(得分:6)

这里有3个问题。

问题1:

1)方法AfficherTable(chiffres)不需要传递参数,因为它是实例成员。

您只需致电

即可
table.AfficherTable();

这解决了你的问题。

在做这个问题之前没有2

问题2:

2)您将chifferes视为实例成员int [][] chiffres;

并且您正在构造函数

中初始化它
public void CreerTable(){

    int[][] chiffres= {{11,01,3},
                        {12,02,4},
                        {12,03,5}};

}

但如果你仔细看,你又在创造新的阵列。这不会起作用,因为您正在创建新阵列并忘记了您的实例成员。

将构造函数更改为

public void CreerTable(){

        chiffres= new  int[3][3] {{11,01,3},
                            {12,02,4},
                            {12,03,5}};

    }

问题3:

更改该构造函数后,由于您在同一个类成员中使用它,因此无需接收它。因此,您将方法声明更改为

public int[][] AfficherTable(){

我猜你现在好了。

答案 1 :(得分:2)

    table.CreerTable();
    table.AfficherTable(chiffres);

通过解析chiffres,它会在Class Table中搜索,因为你没有指定chiffres来自Tableau1。 因此解决方案是:

    table.CreerTable();
    table.AfficherTable(table.chiffres);

答案 2 :(得分:0)

chiffers既不是main方法的局部变量,也不是类 Table 的字段,这就是错误的原因。