您好,欢迎访问三七文档
山东大学计算机学院1一个练习:看看大家是否真正理解面向对象•假设一个吉他Guitar店,需要一个可以搜索查找库存的简单程序•程序要求很简单,是个控制台程序,数据不需要持久化,即先不使用数据库•程序的功能:–在初始化时,首先初始化库存信息,将所有Guitar编目,并将信息加入库存目录中,存储的guitar信息包括序列号、价格、制造商、模型、类型、背板木料、头部木料等信息–当用户输入想要查找的Guitar类型信息,如制造商、模型、类型、背板木料、头部木料等信息,程序可以从库存目录中搜索到匹配的Guitar,返回库存中匹配的Guitar信息,如果没有找到,那么返回“您要的Guitar没有找到!”•看看你实现的程序共有几个类,查找起来方便么,有没有进一步提高优雅性的地方山东大学计算机学院2增加了个需求•假设这个商店还能卖琵琶,可以查琵琶,也是个弦乐器•假设这个商店还能卖更多乐器,不仅是弦乐器•给出设计和实现山东大学计算机学院3第一个程序:两个类山东大学计算机学院4一次改进山东大学计算机学院5山东大学计算机学院6山东大学计算机学院7进一步改进山东大学计算机学院8山东大学计算机学院9山东大学计算机学院10类关系图山东大学计算机学院11•需求发生变化:客户说最近他想卖mandolins曼陀林(一种琵琶类乐器),想要我们在系统中实现这个功能,并且可以针对这种乐器进行搜索。我们需要在原有系统中支持曼陀林这种新的乐器。既然是乐器,肯定和guitar有共同的地方,我们可以抽象出来。加入一个乐器类,表示曼陀林和guitar的抽象。山东大学计算机学院12•其实在上图中,我们会发现,乐器的细节类和guitar的细节类,以及mandolin的细节类都很相似,还应该有个抽象的乐器细节类。把共同的细节信息都移到抽象类中。就会变成下面的结果山东大学计算机学院13山东大学计算机学院14山东大学计算机学院15山东大学计算机学院16山东大学计算机学院17山东大学计算机学院18山东大学计算机学院19山东大学计算机学院20山东大学计算机学院21山东大学计算机学院22
本文标题:练习讲1解
链接地址:https://www.777doc.com/doc-3915066 .html