【黑马程序员】Java基础03:面向对象的特性和经典案例

来源:互联网 发布:seo公司哪家好 编辑:程序博客网 时间:2024/06/05 05:06
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------


一、面向对象的概念

面向对象是相对于面向过程而言的面向对象和面向过程都是一种编程思想

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);

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
0 0
原创粉丝点击