黑马程序员 面向对象的分析与设计

来源:互联网 发布:知乐胶囊为什么这么贵 编辑:程序博客网 时间:2024/06/09 14:26

-------Android培训 、java培训 、期待与您交流 -------

java是一门面向对象的编程语言,在java的学习中,我们必须有面向对象的思维模式,用面向对象的方法来思考问题和解决问题。在javaAPI中,提供了多个类和接口,以及类中定义的各个方法,程序员需要做的就是熟悉并能正确使用他提供的方法进行程序的编写,然而,万物皆对象,javaAPI虽然很丰富,但是并不能描述所有的事物,这就要求我们程序员在学习中不仅要学会java的API,还能够通过学习java的API,了解java类的底层实现方式,从而能够编写出自己的java类来实现项目的需求。

java面向对象设计要把握一个重要的经验:谁拥有数据,谁就对外提供操作这些数据的方法。一般在java类中,我们的数据都是私有的,为了方便外界能够访问,查找,修改数据,必然会提供对外访问的方法,这个方法就定义在该类中。例如,人开门,那么开门这个方法究竟是人这类事物的方法还是门这个事物的方法呢,我们知道门打开依靠的是门内的弹簧,那么这个弹簧就是门内部的数据,并且是私有的,人是不知道的,因此我们说开门这个方法是门的方法。同理我们说列车司机紧急刹车,根据同样的分析方法,我们知道刹车的方法是车子的方法,人只是在用这个方法而已。

再例如,有这样一个需求:“用石头磨成石刀,再用石刀砍树,将树变成木材,再把木材加工成椅子”,那么我们可以抽取出以下几个类,石头(Stone)类,石刀(StoneKnife)类

,输(Tree)类,木材(Matearial)类,椅子(Chair)类,我们对这几个类进行分析,把石头变成刀必然不是自己累不的方法,因为他的内部并没有石刀这个属性,因此,我们要定义一个石工加工厂(KnifeFactory)类,他的内部有一个create(Stone stone)方法,该方法接收一个石头对象,并且返回的是一个石刀,这时我们就有了石刀,石刀内部定义一个cut(Tree tree)方法,该方法接收一个Tree对象,并返回一个木材(Material),于是我们就有了木材,最后我们又定义一个椅子加工厂(chairFactory)类,在该内部定义一个造椅子的方法makeChair(Material material),将木材加工成椅子。就实现了需求。

总结起来如下:

class Stone{  }class KnifeFactory{  StoneKnife stoneknife;  public StoneKnife(Stone stone){     return stoneknife;}}class Tree{}class StoneKnife{Material material;public Material cut(Tree tree){return material;}}class ChairFactory{ public Chair makeChair(Material material){     return chair;}}class chair{}



原创粉丝点击