标签:
面向对象课程完结即可编写一个简单的飞机大战程序。我觉得我需要总结一下
飞机大战中类的设计:
Hero、Bullet、Airplane 、 Bee 均继承自FlyingObject类,FLyingObject具有他们的公共属性以及行为,因为FlyingObject并不需要被实例化,那么大可以将之设计为抽象类。
Award、Enemy是两个接口,分别表示奖励和敌人,Award中定义了奖励类型常量和获取奖励方法,Enemy定义了获取敌机含有的分数方法。Bee、Airp继承了FlyingObject类的同时分别实现了Award、Enemy接口,让他们继承父类的同时也具有了接口中的属性方法。接口的设计提高了程序的扩展性,如果说还想添加一个大黄蜂(BigBee)类,既可以获得奖励又能获得分数,这个类继承FlyingObject在实现Award和Enemy接口即可。一个类是能继承一个父类,但可以实现多个接口,接口让程序的扩展性大大提升。是不是顿时觉得接口萌萌哒,特别好用呢。
ShootGame则是应用程序具体逻辑的实现,定义了舞台界面的属性、方法。其实质是数据的使用层,之前的几个类都是数据基础,这个类则是将数据组装。额,希望我的理解没有问题。
一个好的应用程序必定有一个好的设计,继需求分析阶段后,类和数据结构的设计同样是一个非常重要的阶段,在几次的项目实践中,我大概已经领悟到了这一点。没有好的设计,往后的路只有一个字——苦...哇!
至于类的设计原则:首先找出所有对象共有的属性和方法,设计出父类,至于父类是设计成抽象类还是非抽象类就看程序需不需要将他实例化对象。然后看每个类是不是还具有除父类以外的其他共有方法功能,将其抽象为接口。其次是类的方法,方法的设计尽量降低其耦合性,说白了就是把每一个功能拆开拆开,分解分解。
关于面向对象:
面向对象是什么?面向对象就是将客观事物看做具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成模型——类(组成Java程序的最小单位)。
面向对象具有如下基本特征:
面向对象中的易错点总结:
1. 关于static :
2. 关于子类中方法重写之后的调用问题:就这么想,重写的目的是什么呢?当然是为了不同的对象有不同的方法呀,如果说子类重写了父类方法,但是任然调用父类方法,那就一点用都没有了啊,所以,不管怎样,只要引用调用的方法是子类重写了的方法,就会调用子类方法。除去重写方法,其他数据就得看引用类型,一个子类对象被造型成父类对象(或其实现的接口)后,引用能访问的方法是不是就减少了啊,因为此时是需要看父类有什么了。
标签:
原文地址:http://www.cnblogs.com/FancyLian/p/5824265.html