java编程思想,面向对象编程

本文通过实例探讨了面向对象设计原则,利用工厂模式实现了石头到石刀的转换,进而展示了石刀如何砍树成木材,木材再制作成椅子的过程。接着,通过定义绳子和球类的关系,解释了小球如何沿绳子移动的逻辑。

 java编程思想
 
  面向对象设计:谁拥有数据,谁就对外提供操作这些数据的方法
 


  两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子
  stone石头
  knife刀
  tree
  wood木材
  chair椅子
  StoneKnife=KnifeFactory.createKnife(stone)
  因为石头没有变成石刀的方法,所以这里是写一个石刀工厂,可以传人石头,返回石刀
  wood=knife.cut(tree)
  石刀可以有一个砍树的方法,直接将树砍成木材
  chair=ChairFactory.makeChair(wood)
  木材没有变成椅子的方法,所以写一个椅子工厂,可以传人木材,返回椅子

 

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

 绳子有两个属性,开始点,结尾点(要创建一个点类)
 有一个得到下一个点的方法,返回的还是下一个点的坐标

 球要和绳子有关系,所以在球类中定义一条绳子,并写一个构造函数将绳子传人进去
 小球要有一个移动的方法,这个方法要从绳子那里获取到移动到下一个移动点的坐标

  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,startPoint)
    {
     this.rope=rope;
     this.currentPoint=startPoint;
    }
    public void move()
    {
     currentPoint=rope.nextPoint(currentPoint);
    }
  }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值