簡體   English   中英

將對象傳遞給采用int Java的方法

[英]passing an object to a method taking int 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();

我不知道您的Case類是什么樣,但是您要么更改insertNumber()方法以接受一個Case對象,要么需要這樣調用它:

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

假設Case類具有3個字段x,y和z。

根據您的代碼,這就是我在同一類中使用新參數所做的事情。

// 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM