刚开始学习java例子大概是这样一个商店,想对自己的商品进行纪录和分类。可知商品类型指定为三种 cd dvd book, 每种类型的商品又拥有不同的样式,例如cd的样式有jazz,rock, popbook有 悬疑 侦探。  一件商品拥有 名字 价格 数量 当然还有他所属的类型和样式(唯一类型和唯一样式)要求 -例如可以从cd中查询到其所有的样式 
     -从一个样式用可以查询到所有属于这种样式的商品
下面是我自己的理解:
创建了三个类 分别为 ‘商品类型’〈-‘商品样式’〈-‘商品’ 并继承最先初始3个‘商品类型’的对象分别为cd dvd book,构造函数为  
商品类型(String nameLX){}接着初始样式 对于cd 例如jazz 构造函数 
商品样式(String nameLX,String nameYS){}当要加入一件商品时 构造函数为 
商品(String nameLX,String nameYS, String nameSP....){}然后在‘类型’的构造函数中 建立一个类容器, 每当有属于这个类型的样式加入时(例如jazz),就把这个样式的对象加入到这个类型的类容器中(ArrayList〈商品样式〉)同样的方法,在样式中也加入一个装商品的类容器。这样当我们想知道jazz包括了什么唱片,或者cd中有什么样式,只要打印类容器便可以得知了。在这里我又有点迷惑,例如一种类型(如cd)建立后,我又想建立他的样式(如jazz),在创建jazz的对象时,我还是需要输入“cd”这个字符串,感觉有点重复了。这里对于cd dvd book,和样式中建立的类 貌似只是一个用于查询的类?

解决方案 »

  1.   

    建议创建一个超类为:Goods,在超类中建立一个arraylist,用于存放样式,通过构造函数传递。而名称,价格,数量可以作为属性,分别创建setPrice(),getPrice()等方法,然后在创建cd dvd book类的时候,继承Goods类,这样整个程序就会比较清晰。
    因为样式放在arraylist类中,可以很方便地在类中查询。
      

  2.   

    看不太懂啊?用arraylist这个应该可以。
      

  3.   

    谢谢你的回答
    如果把类型作为商品的子类 我不能明白 你是说cd dvd 分别为一个类么
    这样有点说 一个商品可以是cd 又可以是dvd的味道
    我最主要的问题是说 如果按我的想法 继承的意义不大 完全可以不用继承来创建这三个类
      

  4.   

    goods 是基类 。
    cd dvd book是子类。 
    样式,类型,名字,价格,数量 是基类的成员变量
    子类构造函数中 强制设定 商品类型。 
    商品是子类的实例。
      

  5.   

    这些条件都可以用SQL语句写出来的