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

------- 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值