2013-04-23 105 views
-3

是下面的代码:相关一个节点到另一个节点

class FamilyMember{ 
    String name; 
    String type; 
} 

class Family{ 
    FamilyMember father; 
    FamilyMemeber mother; 
    List<FamilyMember> children; 
} 

会产生以下关系:  

+------------------+  +------------------+ 
|  Father  |------|  Mother  | 
+------------------+^ +------------------+ 
         |     
         |     
         |     
         |     
         |      
       --------------  
       |   |     
       |   |     
       |   |     
       |   |     
+------------------+  +------------------+ 
|  Son   |  | Daughter  | 
+------------------+  +------------------+ 

 

由于儿童的数量在不同的不同家庭,因此每个家庭都有自己的家庭结构。

我想做的它可以显示上述关系与可变数量的子。

+4

那么,有一个家庭班,有两个父母和一个孩子的名单。也许你在混淆家庭树木和阶级关系?因为它们不直接相互关联。 – 2013-04-23 08:46:58

+3

这看起来像是一个试图解释继承的演讲中非常令人困惑的例子。 – blubb 2013-04-23 08:50:19

回答

1
class FamilyMember{ 
    String name; 
    String type; 
} 

class Family{ 
    FamilyMember father; 
    FamilyMemeber mother; 
    List<FamilyMember> children; 
} 
+0

好的。这可以。 – 2013-04-23 09:16:46

+0

@Raaga很高兴我能帮忙! – 2013-04-23 09:19:56

0

为什么不创建一个名为Family的类? 可以有多个(n)孩子和1或0(伤心的世界:/)父亲&母亲。

你也可以将每个孩子连接到一个特定的母亲和父亲。

其实我宁愿选择一个具有性别的人类,所有其他类都应该从它继承。由于每个人都有很多喜欢名字和东西的东西,所以从长远来看这应该更容易处理...

1

您只需要一个带有父/子关系的简单树。树中的每个节点都是一个人。

别忘了;

  1. 它可能让两个孩子分享一个共同的父母,而不是两个。 EG男人可以有两个不同女人的孩子,反之亦然。
  2. 所有的父母本身都隐含着孩子。
  3. 每个孩子都会有两个父母代替正常一个

具有以下数据的类应该足够了;

public class Person { 

    boolean female; 
    Person father; 
    Person mother; 
    List<Person> children; 

} 
+0

一个'enum'将会是一个更简洁的方式来实现'Person'的'性'。 – Aquillo 2013-04-23 09:12:12

+0

@Aquillo - 是的,好点。 – Qwerky 2013-04-23 09:17:29

0
class Parent 
{ 
    String name; 
    String gender; 
} 

class Family 
{ 
    Map<Set<Parent, Parent>, String> child; 
} 
相关问题