电影售票系统项目总结


电影票父类public abstract class Ticket

字段:Movie movie, Seat seat, int price

方法:compute(), print(), toString().

电影票子类 StudentTicket, FreeTicket, GeneralTicket.

子类分别实现各自的继承自父类的三个方法,compute()方法实现各自票价的计算方法,print()方法实现各自对象反序列化到指定文件中保存,toString()方法实现各自打印输出电影票功能。

电影院类public class Cinema

字段:Schedule schedule, List<Ticket> soldTickets

方法:load(), save(), printTicket(Ticket ticket).

方法load()功能

实现从保存序列化信息的文件中读取出保存电影票对象信息。

在方法内部,要首先判断读取的文件存在与否,如果不存在需要先创建,如果存在就反序列化。反序列化时,直接用一个List<Ticket>类型的集合去接收readObject()方法返回的信息,当然同时需要用(List<Ticket>)强制转换readObject()方法返回的信息,不然编译时将会报错。接下来将读取到的已售电影票保存在字段soldTickets中,接着遍历集合输出。

方法save()功能

该方法实现的功能是将字段soldTickets中的电影票信息通过序列化保存在指定文件中。

在方法内部,先获取保存有已售电影票信息的字段,然后将此字段soldTixkets作为参数传进writeObject()方法中。

方法printTicket(Ticket ticket)功能


未完待续

电影票类,子类和父类都重写了equals和hashcode方法,list集合在添加元素的时候要调用equals方法来判断要添加的元素是否与集合中的元素相同,这时候就可以根据你自己的要求来重写这两个方法,我就是根据你的代码重写了这两个方法。另外折扣和赠票者姓名我觉得是可以重复的,就没有写在那两个方法及。

已售出的电影票,不管是序列化还是反序列化的时候都要用到,所以直接用一个成员变量储存比较好,而且运行过程中得到的电影票可以还要与这个变量里的其他电影票比较,如果没有售出就需要添加进来,这样看来,这个变量要用到的地方比较多,所以声明成成员变量比较好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • JAVA序列化机制的深入研究 对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整...
    时待吾阅读 10,931评论 0 24
  • 坐在屋外听了一上午的雨,像个傻子一样在发呆,等到烟屁股烫到手指,才倏然惊醒。 也许我就是在做着一场注定要被惊醒的梦...
    宁无言阅读 233评论 0 0
  • 人满为患的时候,拿一把伞占座位,真的是天经地义理直气壮的事情吗?有些我们以为的占便宜抢先机,会不会是被别人暗自耻笑...
    xxyuer阅读 377评论 0 0