1.1 抽象过程

  1.所有编程语言都提供抽象编程机制。

  2.人们所能够解决的问题的复杂性直接取决于抽象的类型(所抽象的是什么)和质量。

  3.“命令式”语言(basic,c等)都是对汇编语言的抽象,但是仍然要求解决问题时依赖计算机的结构,程序员必须建立起在机器模型(如计算机)和实际待解决问题(例如一项业务)之间的关联。

  4.对机器建模的方式就是只针对待解问题建模。如 lisp和apl,只能解决某个特定问题。

  5.面向对象方式则通过向实际待解问题提供表示问题元素的工具而更进一步。这种表示方式非常通用,不会局限于特定问题。我们将实际待解问题中的元素在机器模型中的表示叫做“对象”。这种思想的实质就是:通过添加新类型的对象来使自己适应于某个特定问题。

     归纳:编程语言的演变实质上是人们利用计算机解决实际问题的思维演变。

1.2 对象的基本特性

  1.万物皆为对象

  2.程序是对象的集合,他们同于发送消息来告知彼此所要做的。

  3.每个对象都有自己的由其他对象所构成的存储。

  4.每个对象都拥有其类型。

  5.某一特定类型的所有对象都可以接受同样消息。

  对象的描述:对象具有状态(内部数据)、行为(方法)和标识(彼此区分)。

1.3 每个对象都有一个接口

  类:描述了具有相同特性(数据元素)和行为(功能)的对象集合。实际上就是一种数据类型。

  (对象)类 解决了实际问题元素如何在机器模型中如何表示的问题。

  要解决问题,就得按照一定的方法操作对象(实际问题元素),而请求的方法是什么?这个则由接口来定义。接口确定了对某一个特定对象所能发出的请求。决定接口的便是类型。

  例如:我们可以将男人和女人都以人的类型在机器模型中表示。而人这个类型决定了其接口可以定义:吃饭,思考这样的请求方法。

1.4 继承

  1.类型不仅描述了作用于一个对象集合上的约束条件,同时还有与其他类型之间的关系。比如:子类继承父类。

  2补充:类:数据元素+方法+相互关系

1.5 多态

  1.把一个对象不当做它所属的特定类型来对待,而是将其当做其基类的对象对待。这使得人们编写出不依赖特定类型的代码。

  2.当一个对象发送消息时,即使涉及向上转型该对象也知道要执行什么样的正确行为。

  总结:面向对象的思想就是万物皆为对象,将实际问题中的元素以对象的形式在计算机中表示,通过对对象的归纳划分不同的类型,根据具体类型定义对应的接口。

转载于:https://www.cnblogs.com/wwyx-xi/p/6279831.html

java编程思想笔记(一)——面向对象导论相关推荐

  1. Java编程思想学习(一)----对象导论中多态的理解

    1.1抽象过程 1)万物皆对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要求做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型. 5)某一特定类型的所有对象都 ...

  2. java 编程思想 笔记_java编程思想笔记20170215

    importjava.util.ArrayList;importjava.util.List;public classTest {public static voidmain(String[] arg ...

  3. Java编程思想笔记(持有对象)

    1.泛型和类型安全的容器       2.基本概念       3.添加一组元素:Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个LIst对 ...

  4. java 编程思想笔记(七)——异常

    1.什么是异常 java中的异常指的是程序中的异常(不包括硬件异常(内存溢出等)),比如:语法错误(少写分号),除数为0,nullPoint等. 2.为啥需要异常 谁也不想代码在运行的时候,突然程序出 ...

  5. 【Java编程思想笔记】-集合1

    1.为什么要用集合? 一般情况下,数组是保存一组对象(或基本数据类型)最有效的方式.但是数组有着固定的尺寸,而在更一般的情况下,我们在写程序时不知道将需要保存多少个对象,或者是否需要更复杂的存储结构来 ...

  6. Java中的移位操作——Java编程思想笔记

    欢迎转载,转载请务必注明出处: http://blog.csdn.net/alading2009/article/details/39968281 Java中的移位操作包括 <<(无符号左 ...

  7. Java编程思想笔记——并发3

    终结任务 装饰性花园 公园人数共享计数值递增: class Count {private int count = 0;private Random rand = new Random(47);// R ...

  8. JAVA编程思想笔记 : 并发 [ 一 ]

    程序中的所有事物,在任意时刻都只能执行一个步骤. 并发的多面性 并发解决的问题大体上可以分为"速度"和"设计可管理性"两种 并发通常是提高运行在单处理器上的程序 ...

  9. Java编程思想笔记——容器深入研究1

    完整的容器分类法 Java SE5新添加了: 1.Queue接口(LinkedList已经为实现该接口做了修改)及其实现PriorityQueue和各种风格的BlockingQueue. 2.Conc ...

  10. 《Java编程思想》学习笔记【一对象导论】

    重头学习Java,大一没怎么学,大二上课也没听.(流下不学无术的眼泪) 所有编程语言都提供抽象机制,我们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象," ...

最新文章

  1. Android反编译技术总结
  2. 数据列表DataList模板之实例
  3. 打开网页出现“安全沙箱冲突”的提示
  4. 关于application/x-www-form-urlencoded等字符编码的解释说明
  5. 自适应谱线增强matlab,自适应谱线增强器.doc
  6. VLfeat win10 vs2015 编译
  7. 图论算法——加权有向图的数据结构
  8. oracle全数据管理,全面解析Oracle数据库中管理实例的方法
  9. 脑洞啊!3D打印数字式日晷,原理简单,设计巧妙
  10. elementui 下拉框回显_elementUI Cascader 级联选择器回显
  11. 蛋白质组学与转录组学联合分析
  12. 1.9w粉丝带动近100w播放量,推广黑马不止一位
  13. 泛微OA 任意文件上传漏洞
  14. 叶罗丽用计算机对话,叶罗丽小剧场:王默和水王子秀恩爱,俩人的对话也太搞笑了...
  15. 论文《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation ...》阅读
  16. Titantic乘客生还预测数据分析报告—基于python实现
  17. 导弹发射各项参数计算涉及计算机应用,计算机应用基础10.doc
  18. 清华大学百年校庆给清华大学的一封信
  19. 数据挖掘_task2数据探索分析
  20. 利用七牛云作为图片服务器

热门文章

  1. 文件读写: 二进制方式和文本方式的区别
  2. 动物统计加强版 nyoj290
  3. vue ref 绑定的事件需要移除吗_vue生命周期
  4. php物联网github,工欲善其事必先利其器,清点Github上那些优异的PHP项目
  5. 信用评分卡 (part 4 of 7)
  6. mysql改根用户_MySQL数据库中复位根用户密码的方法 | 很文博客
  7. ajax每次只加载3张图片,使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题(推荐)...
  8. python3.8下载request_python3 requests 安装包下载安装[windows]
  9. Spring Cloud随记----分布式配置中心再探---消息总线的引入
  10. DLLPasswordFilterImplant:DLL密码过滤器