将对象传递给采用int Java的方法

时间:2018-12-13 16:41:01

标签: java

我正在做数独游戏。在这里,我试图在一个空的网格中放置一个数字。我有一个提供初始化3个变量的构造函数,然后创建了一个具有3个值的对象。我想在网格中传递每个对象的这三个值,这是我的代码。

public  int [][]  insertNumber(int x, int y , int z){
    isOnRow(x,z);
    isOnColomn(y,z);
    isOnBlock(x,y,z);
    tableau [x][y] = z;
    return tableau;          
}


public static void main(String[] args) {
    ArrayList<Case> contenantCase = new ArrayList<>();
    Case objetCase1 = new Case(0,1,4);
    Case objetCase2 = new Case(0,2,3);
    Case objetCase3 = new Case(0,3,7);
    contenantCase.add(objetCase1);
    contenantCase.add(objetCase2);
    contenantCase.add(objetCase3);

    insertNumber(objetCase1);
    printGrille();

2 个答案:

答案 0 :(得分:1)

我不知道您的Case类是什么样子,但是您可以更改insertNumber()方法以接受Case对象,或者需要这样调用它:

insertNumber(objectCase1.x, objectCase.y, objectCase.z);

假定Case类具有3个字段x,y和z。

答案 1 :(得分:0)

根据您的代码,这就是我在同一类中使用新参数所做的事情。

// also applicable with static to use it on the fly.
public static class NumberInserter() {
     private int x,y,z;
     private case _case;
     NumberInserter() {}
     NumberInserter(int x, int y, int z) {}
     NumberInserter(Case case) { _case = case; }

public  int [][]  doInt(){
    isOnRow(x,z);
    isOnColomn(y,z);
    isOnBlock(x,y,z);
    tableau [x][y] = z;
    return tableau;          
}
public  int [][]  doCase(){
    isOnRow(case.x, case.z);
    isOnColomn(case.y,case.z);
    isOnBlock(case.x, case.y,case.z);
    tableau [case.x][case.y] = case.z;
    return tableau;          
}

}



public static void main(String[] args) {
    ArrayList<Case> contenantCase = new ArrayList<>();
    Case objetCase1 = new Case(0,1,4);
    Case objetCase2 = new Case(0,2,3);
    Case objetCase3 = new Case(0,3,7);
    contenantCase.add(objetCase1);
    contenantCase.add(objetCase2);
    contenantCase.add(objetCase3);

    NumberInserter(objetCase1).doCase();
    printGrille();