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