黑马程序员——高新技术 关于面向对象的理解
来源:互联网 发布:mac整理文件夹快捷键 编辑:程序博客网 时间:2024/05/15 04:39
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
关于面向对象的理解,在高新技术视频学习之后,加上之前看到的张孝祥老师关于面向对象的详细讲解,印象变得更加的深刻,这里专门的复习一下。
面向对象很重要的一点,就是“谁拥有数据,谁就拥有对外提供操作这些数据的方法”。举例说来:
人在黑板上画圆。画圆的方法,应当是“圆”这个对象来提供的。
下面还有更加详细的三个例子:
1 列车司机紧急刹车,刹车的动作是车身上的方法。列车内部的刹车系统叉车
2 售票员统计收 货小票上的总金额。
售票员,小票,统计金额是小票的方法
售货员对象调用收货票据对象的getTotalMoney()的方法,getTotalMoney()方法内部计算出售货票据的总金额
3 人关门。“关门”这个动作,是“门”这个对象自己完成的。
接下来还有个看起来更加复杂的例子:
两块石头磨成一把刀,刀可以砍树,砍成木材,木材做成椅子
Stone Knife Chair Wood Tree,题目中提到的有这么几个对象。对于Stone Knife,并不能直接让Stone用一个方法把Stone变成Knife,因为这样一来,Stone 这个对象就消失了,因此,我们想到下面的解决方式:
Stone Knife = KnifeFactory.creatKnife(stone1,stone 2)
Wood = StoneKnife.cut(tree)
Chair = ChairFactory.makeChair(wood)
另一个稍复杂的经典例子:
球从一根绳子的一端移动到另一端,这个例子一共有两个对象:小球,绳子。绳子的构造方法中包括绳子的两个端点,同时绳子内部有一个方法来返回另一个端点。小球的构造方法要包括小球的起始点,同时小球有一个move()的方法。
这里的代码就直接写在文章里,不放在代码片之中了。
class Rope{
privatePoint start;
privatePoint end;
publicRope(Point start,Point end){
this.start=start;
this.end=end;
}
publicPoint nextPoint(Point currentPoint){
}
}
class Ball{
privateRope rope;
privatePoint currentPoint;
publicBall(Rope rope,startPoint){
this.rope=rope;
this.currentPoint=startPoint;
}
publicvoid move(){
currentPint=rope.nextPoint(currentPoint);
System.out.println("小球移动到了"+currentPoint);
}
}
综上所述,关于面向对象,时刻记住一点,那就是:谁拥有数据,谁就拥有操作这些数据的方法。掌握了这一点,对于在编程时对象的建立与选择便会清晰明了许多。
- 黑马程序员——高新技术 关于面向对象的理解
- 黑马程序员—JAVA高新技术之面向对象的设计思想
- 黑马程序员——04 高新技术(一)关于正则表达式的理解和常用方法
- 黑马程序员——javascript面向对象的理解
- 黑马程序员——面向对象1:理解面向对象
- 黑马程序员_关于面向对象的个人理解
- 黑马程序员——高新技术---Java基础语法—面向对象_构造方法,static 关键字
- 黑马程序员:我理解的面向对象
- 黑马程序员----------------------面向对象的理解
- 黑马程序员_面向对象的理解
- 黑马程序员--java面向对象的理解
- 黑马程序员_java 面向对象的理解
- 黑马程序员——高新技术—AOP面向方面编程
- 黑马程序员—面向对象的概念
- 黑马程序员——面向对象基本理解过程
- 黑马程序员—面向对象
- 黑马程序员—面向对象
- 黑马程序员—面向对象
- poj 3159 Candies
- 分享一个小工具:UnityRemoteLog
- Xamarin安装
- POJ1125 Stockbroker Grapevine 多源最短路 Floyd
- POJ 2603
- 黑马程序员——高新技术 关于面向对象的理解
- 题目1367:二叉搜索树的后序遍历序列
- 深入浅出ThreadLocal
- MFC中显示IplImage类
- 插入排序
- 欢迎使用CSDN-markdown编辑器
- C编译器剖析_C类型系统_相容类型Compatible Type
- JAVA ThreadLocal 对象 ServletActionContext
- HEVC测试模型HM使用之一