Java面向对象(转)

Java语言是面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

但是相信对一些初学者来说,面向对象真的是弄不清是怎么一回事,下面是我听张孝祥老师视频中是几个面向对象的经典小例子。可以这么说,完全理解了这几个例子,那你就可以说入门啦!!!

下面几个例子用面向对象编程思想来简单的写出他们之间的关系。

引用传智博客张孝祥老师视频讲解。

一、球从一根绳的一端移动到了另一端

1,分析:首先确定了两个对象,球和绳。绳对象的属性和方法:绳子上有两个端点和每个点组成的绳子(绳子上的点又是一个对象)。绳子由点组成。那么他有返回点对象的方法。球对象的属性和方法:它在绳子上移动,从一端移动到另一端,那么它有个移动方法。
简单是代码示例如下:
  1. class  Rope
  2. {
  3. private Point start;
  4. private Point end;
  5. public Rope(Point start,Point end)
  6. {
  7. this.start=start;
  8. this.end=end;
  9. }
  10. public Point nextPoint(Point currentPoint)
  11. {
  12. //通过Point对象的提供的放哪广发,就可以计算出当前点的下一个点,在设计阶段,不详细说明
  13. //如果当前点是终点,则返回null,如果当前点不是线上的点,则抛出异常。
  14. }
  15. }
  16. class Ball
  17. {
  18. private Rope rope;
  19. private Point currentPoint;
  20. public Ball(Rope rope,startPoint)
  21. {
  22. this.rope=rope;
  23. this.currentPoint=statPoint;
  24. }
  25. public void move()
  26. {
  27. currentPoint=rope.nextPoint(currentPoint);
  28. System.out.println("小球移动到了"+currentPoint);
  29. }
  30. }</span>

二、两块石头磨成一把石刀 Stone,石刀 StoneKnife可以砍树 Tree,砍成木材 Meterial,木材做成椅子Chair。

1,首先分析对象:有石头、石刀、数、木材、椅子。
2,对象之间的关系:石头和石刀的关系,两个石头磨成了石刀,即最后石头没了,做成了石刀,所以需要一个石刀加工厂。而后面的石刀砍树,把数变成了木材。这个是石刀的功能。木材又做成了椅子,这有跟石头做成了石刀一个道理,需要一个加工厂。
3,代码样式:
两块石头磨成一把石刀
StoneKnife  stoneKnife =KnifeFactory.createKnife(stone);
石刀可以砍树,砍成木材
Meterial  meteial  = stoneKnife.cut(tree);  

  1. 木材做成椅子
  2. Chair chair=ChairFactory.makeChair(meterial);

三、列车司机刹车把火车停住 。

1,分析对象:司机 Driver、火车 Train
2,对象之间的关系:刹车这个动作是火车对象的功能,即司机只是调用了火车的刹车动作。
所以对象之间的关系代码表示如下:
class  Train  
  1. {
  2. //别的功能,如拐弯,开车,等等
  3. //刹车功能
  4. public  void stop()
  5. {
  6. }
  7. }
  8. class TrainDriver
  9. {
  10. //调用火车的刹车动作
  11. new Train().stop();
  12. }</span>

四、我在黑板上画圆。

1,分析对象:我 Person、黑板 Blackboard 、圆Circle。
2,对象之间的关系:人调用黑板的画圆功能,画出来一个圆。
对象之间关系代码表示如下:
class Blackboard  
  1. {
  2. //画圆功能
  3. public Circle drawCircle()
  4. {}
  5. }
  6. class Person
  7. {
  8. new Blackboard().drawCircle();
  9. }</span>

总结:以上是理解面向对象的几个经典例子,我是听传智博客中的张孝祥老师的视频,自己总结的,感觉经典,就写下来如大家分享。如果有不正确的地方,请大家多多指正。

面向对象经典例子理解相关推荐

  1. Js面向对象的程序设计——理解对象

    Js面向对象的程序设计 Js面向对象的程序设计 理解对象 属性类型 Js面向对象的程序设计 理解对象 示例 : var person=new Object(); person.name="N ...

  2. python爬虫经典教程-python爬虫经典例子有哪些

    python爬虫例子:首先导入爬虫的库,生成一个response对象:然后设置编码格式,并打印状态码:最后输出爬取的信息,代码为[print(response.text)]. python爬虫例子: ...

  3. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  4. js堆和栈的区别_几个例子理解不同数据类型的堆栈内存处理

    如有错误烦请指正 js代码的运行环境 浏览器 内核(引擎) node webview(hybrid,嵌入到手机app里面,在app里面运行) ... 下面通过几个例子理解不同数据类型的堆栈内存处理 j ...

  5. 面向过程和面向对象的本质理解

    http://kiritor.blog.51cto.com/7400479/1226762/ 面向过程和面向对象的本质理解 面向过程就是分析出解决问题所需的步骤,面向对象则是把构成问题的事物分解成对象 ...

  6. 用例子理解java7内存结构

    一个例子理解全部 为了理解的比较深刻,先给一个例子.通过例子讲解印象更加深刻吧,假设我们在idea或者是任何IDE环境中定义了一个类. 有一个person类 public class Person{i ...

  7. 用实际例子理解回调函数(Calback)

    用实际例子理解回调函数(Calback) 在我们编码的过程中,调用和回调几乎无处不在,但是我对回调函数到底是怎样一回事并没有一个真正透彻的理解,最近我查找学习了一些资料,学到了很多. 我参考了一些知乎 ...

  8. 算法-动态规划学习(含经典例子分析)

    文章目录 前言 一.动态规划是什么? 二.经典例子 爬楼梯问题 挖金矿问题 三.总结 前言 在leetcode刷题的过程中,碰到了许多动态规划相关的题目,故系统性的学习了动态规划算法.此文章总结了学习 ...

  9. graphviz 经典例子

    以下在Jupyter Notebook中编辑运行: # 由于pygraphviz的功能有点少,基本放弃对它的使用,改用python库 graphviz 进一步原因如下: # graphviz 是用于& ...

最新文章

  1. python编程程序设计_程序设计入门—Python
  2. Transformer性能被高估?DeepMind动态评估模型的时间泛化能力
  3. P4859-已经没有什么好害怕的了【容斥,dp】
  4. 在Oracle里,表的别名不能用as,列的别名可以用as
  5. 谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!
  6. Java笔记-JNI的基本使用(Java调用C++的dll)
  7. 阿里AI获NLP顶会比赛冠军,达摩院计划推出首个通才型AI医生
  8. 【HNOI2003】【BZOJ1216】操作系统(模拟,优先队列)
  9. spring oracle数据源配置,spring的多数据源配置(spring+ibatis + oracle环境下)
  10. jumserver 官方文档和
  11. 饮冰三年-人工智能-Python-11之HelloWorld
  12. java实现文件夹的复制(包括子文件夹以及子文件)
  13. 在uniapp中配置并colorui及阿里图标
  14. 忘记linux虚拟机密码怎么办
  15. 设计模式-行为型软件设计模式(四)
  16. 计算机游戏act指的是什么游戏,忍龙2领衔!5款史上最佳的ACT游戏推荐,值得一玩!...
  17. 【网络知识】Wireshark抓不到vlan tag问题解决
  18. 差点跑进奥运会赛场的“人类计算机之父”
  19. 那些不回你微信的人都在看什么?
  20. 使用tushare计算北上资金持仓成本

热门文章

  1. 石门县西北乡的路是全国最烂的省级公路
  2. EN 14313:PEF聚乙烯泡沫CE认证
  3. JAVA定时器 配置org.springframework.scheduling.quartz.CronTriggerBean
  4. 离线文档浏览工具Zeal的下载和使用
  5. 网易云音乐评论生成Wordcloud(词云)
  6. 法律专家谈游戏侵权:如何避免侵权,如何维权
  7. 查看主机IP端口与快解析的内网映射
  8. 完美解决Python解决字符串转16进制数据
  9. darknet框架 VS2017 平台工具集141_Nvidia推出Omniverse平台,可远程进行2D/3D多软件实时协作...
  10. [双语阅读]全球幸福指数大调查 富国反而不快乐