【黑马程序员】Java基础03:面向对象的特性和经典案例
来源:互联网 发布:seo公司哪家好 编辑:程序博客网 时间:2024/06/05 05:06
一、面向对象的概念
面向对象是相对于面向过程而言的,面向对象和面向过程都是一种编程思想;
C、C++语言是面向过程的,强调的是功能行为;
java语言是面向对象的语言,就是把很多功能进行封装,强调的是具备了功能的对象;对象封装了很多功能,每个功能都是一个函数,每个函数又都是面向过程的,所以面向对象也就是基于面向过程的。
二、面向对象的特点
可以将复杂的事情简单化,将程序员从执行者转换成了指挥者,就是从面向过程到面向对象的变化;
在完成某个需求时,先要去找具有所需功能的对象来用;如果该对象不存在,就创建一个具有所需功能的对象;这样可以简化开发,并提高程序功能的复用性。
三、面向对象的开发、设计
面向对象的开发过程就是不断地找对象、创建对象、使用对象;
面向对象的设计过程就是管理和维护对象之间的关系。
四、面向对象的三大特性:封装、继承和多态
五、面向对象设计的重要经验:谁拥有数据,谁就对外提供操作这些数据的方法。
六、面向对象的经典案例:
1、人在黑板上画圆:画圆是谁的方法?
person, blackboard, circle
draw(){
x,y --->radius
//画圆需要圆心和半径,都是圆内部的数据,圆拥有数据,画圆的方法就是圆对象的。
}
2、列车司机紧急刹车:刹车是谁的方法?
刹车的动作是车身上的方法,列车司机只是给列车发了信号,刹车是由车自己完成的。
3、售货员统计售货小票的金额:是谁在统计金额?
需要统计的金额和数据都是在小票上面,售货员只是调用小票上的getTotalMoney方法,此方法是小票提供的。
4、人把门关上了:
人只是调用了门上的关门方法,门是得到了关门的信号,自己转动到一定位置才关上的。
5、球从一根绳子的一端移动到了另一端:
//为了方便理解,可以用如下代码来描述小球和绳子。class Rope{private Point start;private Point end;public Rope(Point start,Point end){this.start = start;this.end = end;}//绳子拥有座标,就有方法提供小球的下一个点nextPointpublic Point nextPoint(Point currentPoint){/*通过两点一线的数学公式可以计算出当前点的下一个点,如果当前点是终止点,则返回null,如果当前点不是线上的点,则抛出异常*/}}class Ball{//小球有移动的方法,移动要依赖于绳子,和移动初始点,所以小球的构造方法有绳子和起始点。private Rope rope;private Point currentPoint;public Ball(Rope rope,Point startPoint){this.rope = rope;this.currentPoint = startPoint;}public void move(){currentPoint = rope.nextPoint(currentPoint);System.out.println("小球移动到了" + currentPoint);}}6、两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子
stone:石头变成石刀,但变成石刀的方法不能在自己身上,否则石头这个对象就不存在了,自己把自己变没啦…可以设想:有一个石刀加工厂,有制造石刀的功能,接收石头做成石刀StoneKnife = KnifeFactory.createKnife(Stone first, Stone second);石刀有砍的方法,接收树木,砍成木材Wood = StoneKnife.cut(tree);木材不能自己把自己变成椅子,可以设想有一个椅子加工厂,拥有制造椅子的方法,接收木材做成椅子Chair = ChairFactory.makeChair(wood);
- 【黑马程序员】Java基础03:面向对象的特性和经典案例
- 黑马程序员------Java基础(面向对象和基本特性)
- 黑马程序员--java基础--面向对象的特性
- 黑马程序员 Java的面向对象特性
- 黑马程序员:Java基础之面向对象特性篇
- 黑马程序员--Java基础--面向对象之三大特性
- 黑马程序员——java基础----面向对象(一)思想和封装特性
- 黑马程序员——Java基础---面向对象的四个特性
- 黑马程序员之面向对象的三大特性(JAVA)
- 黑马程序员--Java基础--面向对象基础
- 黑马程序员-----java基础(面向对象基础)
- 黑马程序员_面向对象的特性
- 黑马程序员_001_面向对象的特性
- 黑马程序员_OC面向对象的特性
- 黑马程序员-java基础学习03-面向对象基础
- 【黑马程序员】java编程基础,面向对象
- 黑马程序员 Java基础 ---> 面向对象(上)
- 黑马程序员 Java基础 ---> 面向对象(下)
- 我的2013———大四学生成长记
- 彻底屏蔽优酷广告
- 英语学习——————20140104
- hdu 1711 Number Sequence
- 浅谈切入内核学习的方法 - 从块设备驱动入手
- 【黑马程序员】Java基础03:面向对象的特性和经典案例
- 南阳 102 次方求模
- STM32中assert_param的使用
- 解决Cygwin下vi和vim方向键和Backspace不好用的问题
- “蓝桥杯”软件大赛入门训练4道题
- 南阳 88 汉莫塔(1)
- ARP地址解析协议
- django1.5 return __str__
- 用U盘安装Linux系统的简单方法