使用构造函数从另一个类访问arraylist属性

时间:2014-10-20 22:15:30

标签: arraylist constructor

所以我有一个为我创建数组列表的类,我需要通过构造函数在另一个类中访问它,但我不知道要在构造函数中放入什么,因为该类中的所有方法都只是用于操作那份清单。即时获取空指针异常或超出范围异常。香港专业教育学院尝试将构造函数留空,但该剂量似乎有所帮助。提前致谢。我会告诉你代码,但我的教授对学术不诚实非常严格所以我不能抱歉,如果这样做很难。

1 个答案:

答案 0 :(得分:0)

您对主要问题感到困惑,并提出了一个潜在的解决方案。

主要问题:

I have a class ArrayListOwnerClass with an enclosed arraylist property or field.
How should another class ArrayListFriendClass access that property.

潜在解决方案:

Should I pass the arraylist from ArrayListOwnerClass to ArrayListFriendClass,
in the ArrayListFriendClass constructor ?

这取决于第二课对arraylist的作用。

您可以添加函数来读取或更改隐藏的内部arraylist的元素,而不是通过构造函数传递列表。

注意:您没有指定编程语言。我将使用C#,altought Java,C ++或类似的O.O.P.可以使用,而不是。

public class ArrayListOwnerClass
{
  protected int F_Length;
  protected ArrayList F_List;

  public ArrayListOwnerClass(int ALength)
  {
     this.F_Length = ALength;
     this.F_List   = new ArrayList(ALength);
     // ...
  } // ArrayListOwnerClass(...)

  public int Length()
  {
    return this.F_Length;
  } // int Length(...)

  public object getAt(int AIndex)
  {
    return this.F_List[AIndex];
  } // object getAt(...)

  public void setAt(int AIndex, object AValue)
  {
    this.F_List[AIndex] = AValue;
  } // void setAt(...)

  public void DoOtherStuff()
  {
    // ...
  } // void DoOtherStuff(...)

  // ...

} // class ArrayListOwnerClass

public class ArrayListFriendClass
{
  public void UseArrayList(ArrayListOwnerClass AListOwner)
  {
    bool CanContinue =
      (AListOwner != null) && (AListOwner.Length() > 0);
    if (CanContinue)
    {
      int AItem = AListOwner.getAt(5);
      DoSomethingWith(Item);
    } // if (CanContinue)
  } // void UseArrayList(...)

  public void AlsoDoesOtherStuff()
  {
    // ...
  } // void AlsoDoesOtherStuff(...)

  // ...

} // class ArrayListFriendClass

请注意,我可以使用索引属性。