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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值