面向对象的理解

今天又看了一下张孝祥的视频,觉得老师讲的一些例子很有道理:

 

面向对象一个很重要的思想:谁拥有数据,谁就对外提供操作这些数据的方法。

 

案例1:老师在黑板上画圆

     对象分析:老师(Teacher)、黑板(BlackBoard)、圆(Circle)

     方法归属分析:画圆(Draw)这个方法是属于圆的,根据上面红色字说到的面向对象思想,画圆是要调用圆的属性包括坐标x、y和半径R,圆拥有了这些数据,自然画圆的方法也是由圆提供的。

        

案例2:列车司机刹车

     对象分析:司机(Driver)、列车(Train)

     方法归属分析:刹车(stop)这个方法是属于列车,司机只是起到发号示令的作用。

 

案例3:售货员统计售货小票上的总金额

     对象分析:售货员(Seller)、小票(Ticket)

     方法归属分析:统计总金额(getTotalMoney)这个方法是属于小票对象的,因为统计总金额需要将小票上的数据加起来,这些数据是属于小票的,所以操作这些数据方法也应该属于小票。

 

案例4:一颗小球从绳子的一端滚到另一端

     对象分析:小球(Ball)、绳子(Rope)

     对象联系:小球为绳子的滚动提供了指引的方向

     class Rope

     {

             private Point start;

             private Point end;

 

             public Rope(Point start,Point end)

             {

                    this.start  = start;

                    this.end = end;

              }

             

             public Point nextPoint(Point currentPoint)

             {

                   //利用两点直线的公式

             }

      }

      

       class Ball

       {

              private Rope  rope;

              private Point  currentPoint;

             

              public Ball(Rope rope,Point currentPoint)

              {

                    this.rope = rope;

                    this.currentPoint = currentPoint;

               } 

 

              public Point move()

              {

                    this.currentPoint = rope.nextPoint(this.currentPoint);

                    System.out.println("小球移动到了点" + this.currentPoint);

               }

       }

 

案例5:两块石头磨成一把石刀,石刀可以砍树,树做成木材,木材做成椅子

     对象分析:石头(Stone)、石刀(StoneKnife)、树(Tree)、木材(Wood)、椅子(Chair)

     StoneKnife StoneKnifeFactory.create(Stone),石刀加工厂将石头加工成石刀。

     Wood StoneKnife.cut(Tree),石刀将树做成木材。

     Chair  ChairFactory.create(Wood),在椅子加工厂将木材做成椅子

转载于:https://www.cnblogs.com/vinplezhang/p/5379496.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值