2016-03-21 65 views
1

我有一個有2個類之間的關係:一個是抽象類區域和另一個是類KenKen。我有KenKen類中的Region類型的ArrayList。我如何訪問Region類中的addValue使用抽象類構成關係-java

的類如下:

啃啃:

public class KenKen { 

private ArrayList<Region> regions; 

public KenKen(String filename)throws FileNotFoundException{ 

    //constructor 
    regions = new ArrayList<Region>(); 
    //regions.addValue(0);// 

} 


public static void main(String[] args) throws FileNotFoundException{ 


     KenKen kenken1 = new KenKen("input.1.txt"); 


    } 

} 

地區:

public abstract class Region{ 

private int number = 0; 
protected int target = 0; 
protected ArrayList<Integer> values; 

    public Region(int number , int target){ 

     this.number = number; 
     this.target = target; 

     //constructor 
     values = new ArrayList<Integer>(); 

    } 

    public void addValue(int val){ 

    } 
    public abstract boolean verify(); 

    public String toString(){ 


    } 

} 

回答

1

要訪問ArrayList的一員,你應該使用get(int index)

在此列表中指定位置返回元素。

所以:

regions.get(index).addValue(0); 
1

您可以使用get()法列表中的到達區域對象。

regions.get(0).addValue(0);

1

區域是地區的一個ArrayList,你應該這樣做

regions.get(index).addValue(x); 
0

您需要在KENKEN類的公共方法來存取權限的區域列表。

public List<Region> getRegions() { 
    return regions; 
} 

,然後你可以調用的addValue()

getRegions().get(index).addValue(value);