面向对象的理解

第一   面向对象的理解

一、面向对象的重要经验:谁拥有数据,谁就对外提供这些数据的方法

二、面向对象的理解:

1、人在黑板上画圆:画圆的方法是圆这个对象上的方法,因为画圆需要操作的是圆的半径和圆心,这些都是圆本身具备的属性。而人只是这个方法的调用者而已。

2、司机刹车:刹车这个动作是车这个对象上的方法。人只是给车发出了一个刹车的信号,也就是调用了车的刹车方法。

3、售票员统计售货小票上的总金额:统计金额是票据上的方法因为金额是票据这个对象本身的属性。售货员只是调用了票据对象的getTotalMoney的方法,getTotalMoney方法内部计算出售货票据的总金额

第二  面向对象的具体示例

一、需求:小球从绳子的一端移动到绳子的另一端

二、分析:

1、此实例中对象有小球和绳子两个

2、小球移动:小球自身有个移动的方法

3、绳子:绳子有知道自己下一点方法,因为只有绳子自己知道自己下一点是哪,而且绳子需要把下一点告诉小球,这样小球才能从绳子的一端到另一端。

下面是实例的伪代码,帮助理解:

	/*
	 * 小球从绳子的一端移动到绳子的另一端
	 */
	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){
			/*
			 * 通过两点一线的数学公式可以计算出下一点,但是这个细节不属于设计阶段考虑的问题
			 * 如果当前点是终点则返回null,当前点不是线上的点则抛异常
			 */
			return null;
		}
	}
	
	class Ball{
		private Rope rope;
		private Point currentPoint;
		
		public Ball(Rope rope, Point currentPoint) {
			this.rope = rope;
			this.currentPoint = currentPoint;
		}
		
		public void move(){
			currentPoint = rope.nextPoint(currentPoint);
			System.out.println("小球移动了" + currentPoint);
		}
		
	}
	class Point{}


二、需求:石头磨成一把石刀,石刀砍树,砍成木材,木材可以做椅子

分析:

这里有两个是原材料,不作为操作方法的对象,而作为被操作的对象,

即石头和树作为材料进行加工,而操作这两个对象的就是工厂,将其加工成为石刀和椅子

1、这里将石头磨成石刀,石头并不操作的对象,而是工厂

2、石刀是对象,有砍树的方法

3、加工椅子的工厂将树加工成为椅子

伪代码,帮助理解:

	Stoneknife = KnifeFactoty.createKnife(stone)
	Stone
	Mateial = Stoneknife(tree)
	tree
	chair = ChairFactroy.makeChair(Mateial)


总结:上面也举了一些例子帮助理解,其实在面向对象设计中记住最重要的一点那就是:谁拥有数据,谁就对外提供这些数据的方法,然后在自己分析一下实际例子慢慢的也就能理解了。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值