`
longsy
  • 浏览: 138190 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《thinking in java》第1章:抽象过程

阅读更多

人们所能够解决的问题的复杂性直接取决于抽象的类型和质量
  抽象类型:把问题抽象成了什么(元素)
  抽象质量:元素的层次与关系(关联)

传统编程语言的缺点:
  依赖解空间域的环境(计算机),基于计算机结构,不是基于问题的结构。

必须在解空间(机器模型)与问题空间(问题模型)之间建立起映射关系。

有部分语言是专门对问题空间进行建模而设计。但专业领域依赖性太强,无法通用。所抽象的类型过于局限性。

面向对象的优点:
    不受限于特定类型。通用性更强。

对象:具有状态,行为,标识
  状态:对象在任何时刻都存在自己特定形态(对象本身就是一个数据和行为的携带者)
  行为:对象都有改变自己的形态和为其它对象提供服务的操作行为(对象都自己的能力都非常了解)
  标识:对象在其所在的世界或领域内都是唯一被标识的

万物皆对象:OO将所有存的事物(实体或概念)都当作一个特定的对象。
程序是对象的集合:OOP将对象按某种关系组合在一起,形成一个具有一定逻辑和存储数据的代码集合体。
每个对象都有自己的由其他对象所构成的存储:一个对象可能是其他的对象的组合。就像生物是由细胞组成,而细胞是包含细胞核一样。这样

  包含对象能够使用被包含对象的所有数据和行为。
每个对象都有其类型:每一个对象都对映着一个实体。而每个实体都存在一个概念上的描述。这个描述就是对象的类型。根据描述环境和角度的不同,多个不同可能相似的对象可以拥有相同的描述,即多个对象属于同一个类型。根据这个类型,可以创建该类型的特定对象。对象拥有其所对象类型所描述的行为和数据。
某一个特定类型的所有对象都可以接收同样的消息:对于由同一个类型所创建的所有特定对象,都拥有类型所描述的相同行为。

对象接收消息的理解:除了改变自己状态以外,对象存在的价值就是为其它对象提供服务。提供服务体现在对象所具体的行为上。一个对象A为另外一个对象B提供服务时,我们可以认为B在向A请求提供服务的消息,而A在接收B所请求的服务的消息。

分享到:
评论

相关推荐

    Thinking in Java 中文第四版+习题答案

    第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...

    Thinking in Java简体中文(全)

    第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...

    Thinking in java(中文)

    致谢 <br>第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换...

    C++编程思想(Thinking in C++)完美版pdf

    Bruce Eckel 《Thinking in Java》(Java编程思想)作者。Eckel有20年专业编程经验,并自1986年起教育人们如何撰写面向对象程序,足迹遍及全球,成为一位知名的 C++教师和顾问,如今兼涉Java。他是C++标准委员会拥有...

    Thinking in Java(4th_en)_5

    本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过...

    Thinking in java4(中文高清版)-java的'圣经'

    读者评论 前言 简介 第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 ...

    JAVA_Thinking in Java

    第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...

    Thinking in Java 3th Edition和习题及答案

    Thinking in Java 3th Edition和习题及答案, 已去除加密码。 前言 第3版前言 Java 2, JDK 1.4 简介 前提条件 学习Java 目标 ...第一章 对象引论 抽象过程 每个对象都有一个接口 每个对象都提供服务

    thinking in Java 第四版中文 part1

    第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    “Thinking in Java”详细目录   写在前面的话 引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 ...

    Thinking in Java第三版+第四版

    本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过...

    C++编程思想(《Thinking in C++》,Bruce Eckel著)

    本书作者根据自己学习C++的亲身体会及多年教学...他的《Thinking in C++》一本书在1995年被评为“最佳软件开发图书”,《Thinking in Java》被评为1999年Java World“最爱读者欢迎图书”,并且赢得了编辑首选图书奖。

    对Java的思考(Thinking in Java) Java入门 java与C++对比 深入浅出

    第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类...

    C++编程思想(第2版)_第1卷_标准C++引导

    Bruce Eckel 《Thinking in Java》(Java编程思想)作者。Eckel有20年专业编程经验,并自1986年起教育人们如何撰写面向对象程序,足迹遍及全球,成为一位知名的 C++教师和顾问,如今兼涉Java。他是C++标准委员会拥有...

    java8集合源码分析-thinking-in-spring:小马哥极客时间Spring编程思想示例项目

    第一章 Spring Framework 总览 核心特性 核心特性(Core) IoC 容器(IoC Container) Spring 事件(Events) 资源管理(Resources) 国际化(i18n) 校验(Validation) 数据绑定(Data Binding) 类型装换(Type Conversion) ...

    二十三种设计模式【PDF版】

    在浏览《Thingking in Java》(第一版)时,你是不是觉得好象这还是一本 Java 基础语言书籍?但又不纯粹是,因为这本书的作 者将面向对象的思想巧妙的融合在 Java 的具体技术上,潜移默化的让你感觉到了一种新的语言...

    外文翻译 stus MVC

    1:外文原文 Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help...

    asp.net知识库

    Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...

Global site tag (gtag.js) - Google Analytics