【问题标题】:Composition relation using abstract classes-Java使用抽象类的组合关系-Java
【发布时间】:2016-03-21 17:04:51
【问题描述】:

我有两个类之间的关系:一个是抽象类Region,另一个是类KenKen。我在 KenKen 类中有一个 Region 类型的 ArrayList。如何访问 Region 类中的 addValue 方法?

类如下:

肯肯:

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(){


   }

}

【问题讨论】:

    标签: java inheritance abstract composition


    【解决方案1】:

    要访问ArrayList 的成员,您应该使用get(int index)

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

    所以:

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

    【讨论】:

      【解决方案2】:

      regions 是一个区域的 ArrayList,你应该这样做

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

      【讨论】:

        【解决方案3】:

        您可以使用get() 方法访问列表中的区域对象。

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

        【讨论】:

          【解决方案4】:

          您需要 KenKen 类中的公共方法来访问区域列表。

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

          然后你可以调用 addValue()

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

          【讨论】:

            猜你喜欢
            • 2013-08-21
            • 2019-12-01
            • 1970-01-01
            • 2015-03-19
            • 2010-12-15
            • 2011-12-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多