我不太清楚public Amoeba myParent;
发生了什么。
根据我的理解,myParent
的类型是类,我在概念上很难理解。那是什么意思?
public class AmoebaFamily {
private class Amoeba { // more control on when objects will be created because its private
public Amoeba (String name, Amoeba parent) // contructor with arguments
{
myName = name;
myParent = parent;
myChildren = new Vector ();
}
public String myName; // amoeba's name
public Amoeba myParent; // amoeba's parent
public Vector myChildren; // amoeba's children //array that can be resize
public String toString () { // toString is used whenever you require to explore the constructor called value in string form
return myName;
}
public Amoeba parent () { // constructor without argument just return myParent
return myParent;
}
答案 0 :(得分:2)
变形虫的父母是......变形虫。假设我们的新生Amoeba被称为Amy Jr.,它的父母是Amy Sr.,你会为Amoeba类型的Amy Jr.创建一个对象,并指定它的父母Amy Sr.也是一个Amoeba,它的变量myParent是和孩子一样。
如果它的父母是其他东西(我不知道它在生物学上是怎么可能的),比如Parrot,你会有这样的东西来创造一个新的变形虫,其父母是一只鹦鹉
public Amoeba (String name, Parrot parent) // contructor with arguments
{
myName = name;
myParent = parent;
myChildren = new Vector ();
}
public Parrot myParent;
我希望能回答你的问题。
答案 1 :(得分:1)
这是 NOT 构造函数:
public Amoeba parent ()
{
return myParent;
}
这只是一个名为parent
的方法,它返回一个Amoeba
对象。构造函数:
public Amoeba (String name, Amoeba parent)
{
myName = name;
myParent = parent;
myChildren = new Vector ();
}
初始化名为Amoeba
的{{1}}实例成员。 myParent
方法返回所述实例成员。
答案 2 :(得分:0)
一个类可以拥有自己类型的成员,没问题。这一直用于创建链表。
答案 3 :(得分:0)
它只是意味着通过给出变形虫及其亲本的名称来构建变形虫。它的父母恰好是另一个变形虫。就像文件系统中的文件夹有另一个文件夹作为他的父文件夹。或者一个人有两个人作为父母。
答案 4 :(得分:0)
似乎意味着每个Amoeba对象在实例化时都将构造为对同一Amoeba类型的父对象的引用......我会想象如果有这样的父子结构Amoeba对象最终将是一个没有父母的变形虫......并且在父母身上有一个空值......而其余的将在他们的父母某处调用一些变形虫对象......如果这是有意义的。
答案 5 :(得分:0)
将此视为家谱。
public class Person {
public Person(String name, Person father, Person mother) { ... }
}
它只是意味着要实例化一个新的Amoeba
,您需要先为它提供一个名称和父级。