我想是这样的
第一:继承,通讯录记录是一个人信息,所以父类就是people ,人有不同的职业,就有不同的特征。所以就继承people类,在写自己的属性和方法。
第二:封装,所有属性变成私有的,再写get和set方法来获取和设置。

解决方案 »

  1.   

    继承:你写一个父类如楼上兄弟说的,在父类里写人共同拥有的特征(属性)和行为(方法),子类继承父类的时候,同时子类就有了父类的方法。封装:楼上的兄弟也说了,所有属性变成私有的,再写get和set方法来获取和设置。避免别人对他的属性进行修改,封装在一个对象中,你如果用到他的属性new下这个类get方法得到,比如你要保存到数据库中,你就可以传整个对象进去,在得到他的属性get方法将值保存到数据库中就ok.
    不知道这样理解对不对,呵呵!
      

  2.   

    bean包 people类(纪录每条信息)
    dao包 peopleDAO类(操作类 增删改查  当然参数是对象这才符合面向对象嘛 例如删除方法 传进去一个people对象 利用people里的people.getId()获得id 来删除纪录里指定的纪录)
    db包 简单单例模式获得唯一的Stream 方便peopleDAO操作
    GUI包 用户界面(就是个界面)一个简单的三层数据结构 显示层 业务实现层 数据存储层新手菜鸟 纯属个人想法
      

  3.   

    在没做之前不用考虑什么 OOP 之类的,先好好地想一下这个通讯录该有些什么功能?具体要做些什么?
    存储的个人信息都包括些什么?最好能用笔把你所能想到的设计记录下来。虽然是个通讯录,麻雀虽小,
    但五脏俱全,希望楼主能认真地对待。
      

  4.   

    谢谢大家的意见,现在我有点想法了。
    封装可以解决,继承嘛,我准备从people中分出同事和朋友,同事有职位等属性,而朋友有生日等属性。但是这样的话两个record的性质或者说是长度就不一样了,这还能放在一个链表里吗?还能存储在一个RandomAccessFile中吗?还是说分两个文件存比较好?比如
    class people {
      public ...
      public ...
    }
    class friend extends people {
      ...
      ...
    }
    那条当“指针”用的语句该怎么写,写在哪里呢?
    是people nextRecord;还是friend nextRecord;
      

  5.   

    我明白你们的意思了~这样看起来三个特性都可以运用到。
    那个关于链表的问题我还是没有弄懂,如果有的record是people,有的是friend,那还能做成一个双向链表吗?这个链表怎么写进一个RandomAccessFile里?
    还是说分成两个文件,到时候在合并起来?