[英]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.