黑马程序员_交通灯管理系统_面向对象的分析和设计

来源:互联网 发布:申请淘宝达人后怎么做 编辑:程序博客网 时间:2024/05/17 02:44

------- android培训、java培训、期待与您交流! ----------

Java 是面向对象的程序设计,在在考虑问题时应该将事物以对象的思想来考虑

面向对象设计把握一个重要的经验:谁拥有数据谁就对外提供操作这些数据的方法。

牢牢记住以下典型案例:

人在黑板上画圆

对象有人,黑板,圆

方法是画圆,画圆的方法中用到圆心(x,y),半径r,这些数据属于圆,谁拥有数据谁就对外提供方法所以画圆是圆提供的方法。

列车司机紧急刹车

对象有司机,列车

方法是刹车,在刹车的动作中需要车熄火,离合器操作等,这些数据都是车的,所以刹车是车提供的方法

售货员统计收货小票的金额

对象有售货员,小票

统计的方法中需要小票上的金额数据,所以统计是小票提供的方法

人把门关上

对象有人,门

关门的动作需要门轴转动,锁扣上等,这些都是门的数据,所以关门是门提供的方法

两道关于面向对象的面试题

两块石头磨成石刀,刀可以砍树,砍成木材,木材可以做成椅子

对象有

两块石头,石刀,树,木材,椅子

两块石头磨成石刀

磨的动作既不需要石头提供数据也不需要石刀提供的数据,所以不是这两个对象的方法,应该是第三方提供的方法,传入石头返回石刀

石头-->石刀

石刀 = KnifeFactory.create(石头1,石头2);

刀可以砍树,砍成木材

刀砍树,到提供砍的方法,将树砍成木材

木材 =.();

木材可以做成椅子

木材和椅子本身不能做成,由第三方将木材做成椅子

椅子=ChairFactory.make(木材);

球从绳子的一端移动到另一端

对象:球,绳子

绳子提供小球移动的路线,即小球的位置

class Rope(){private Point start;pribate Point end;public Rope (Point start Point end){This.start=start;This.end=end; }Public Point nextPoint(Point currentPoint){/*返回下一点的位置,如果当前点返回为null则是终点,如果不是线上的点,抛出异常*/}} 

小球实现移动这个动作的方法

Class Ball{Private Rope rope;Private Point CurrentPoint;Public Ball(Rope ropePoint startPoint){  This.startPoint=CurrentPoint;  This.rope=rope;}Public void move(){  currentPoint=rope.nextPoint(currentPoint)  }}


------- android培训、java培训、期待与您交流! ----------
0 0
原创粉丝点击