黑马程序员_交通灯管理系统_面向对象的分析和设计
来源:互联网 发布:申请淘宝达人后怎么做 编辑:程序博客网 时间: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
- 黑马程序员_交通灯管理系统_面向对象的分析和设计
- 黑马程序员_关于交通灯管理系统的设计思路
- 黑马程序员_交通灯系统的设计、分析与实现
- 黑马程序员__java 模拟交通灯系统_面向对象学习
- 黑马程序员_交通灯管理系统需求分析
- 黑马程序员_交通灯管理系统原理分析
- 黑马程序员_交通灯管理系统需求与分析
- 黑马程序员_交通灯管理系统之详细分析
- 黑马程序员_面向对象的情景分析与设计
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统笔记
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统
- 黑马程序员_交通灯管理系统
- 双向关联现实一对多,注解现实
- 全排列就翻译为full permutation吧
- 支付宝接口集成,错误代码 ILLEGAL_PARTNER_EXTERFACE 解决
- 用QT获取NGA大脚用户的魔兽角色信息
- linux中shell变量$#,$@,$0,$1,$2的含义解释
- 黑马程序员_交通灯管理系统_面向对象的分析和设计
- 初识css hacker
- linux gcc常用命令
- UVa 11731 Ex-circles 与旁切圆有关的计算
- C语言结构体里的成员数组和指针(C语言的一个隐晦角落——关于零数组)
- Problem 1005 Fast Food
- SDUT 图的深度优先遍历(邻接矩阵表示)
- python爬虫初学(3)
- jQuery 文档操作 - appendTo() 方法