Java 学习笔记 -- 第一章 对象导论 (1.1)

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

  2. 程序员必须建立起在机器模型和实际待解问题的模型之间的关联。

  3. 机器模型:位于“解空间”内,这是你对问题建模的地方,例如计算机。
    待解问题模型:位于“问题空间”内,这是问题存在的地方,例如一项业务。

  4. 面向对象方式通过向程序员提供表示问题空间中的元素的工具而更进了一步。这种表示方法非常通用,使得程序员不会受限于任何特定类型的问题。

  5. 问题空间中的元素及其在解空间中的表示称为“对象”。

  6. 这种思想的实质是:程序可以通过添加新类型的对象使自身适用于某个特定问题。

  7. OOP 允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。(但是它仍然与计算机有联系:每个对象看起来都有点像一台微型计算机 – 它具有状态,还具有操作,用户可以要求对象执行这些操作。)

  8. Java 所基于的语言之一的Smalltalk 的五个基本特征,这些特性表现了一种纯粹的面向对象程序设计方式:
    (1)万物皆为对象。将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作。理论上讲,你可以抽取待求解问题的任何概念化构件(狗,建筑物,服务等),将其表示为程序中的对象
    (2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。 要想请求一个对象,就必须对该对象发送一条消息。更具体的说,可以把消息想象为对某个特定对象的方法的调用请求
    (3)每个对象都有自己的由其他对象所构成的存储。换句话说,可以通过创建包含现有对象的包的方式创建新类型对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。
    (4)每个对象都拥有其类型。按照通用的说法,“每个对象都是某个类(class) 的一个实例(instance)", 这里”类“就是”类型“的同义词。每个类最重要的区别于其他类的特性就是”可以发送什么样的消息给它“。
    (5)某一特定类型的所有对象都可以接收同样的消息。”圆形“类型的对象同时也是”几何形“类型的对象,所以一个”圆形“对象必定能够接受发送给”几何形“对象的消息。这意味着可以编写与”几何形“交互并自动处理所有与几何形性质相关的事物的代码。这种可替代性(substitutability) 是OOP中最强有力的概念之一。

  9. 对象具有状态,行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每一个对象都可以唯一地与其他对象区分开来,具体说来,就是每一个对象在内存中都有一个唯一的地址 (这句话说的有点过于受限,因为对象可以存在于不同的机器和地址空间中,他们还可以被存储在硬盘上。在这些情况下,对象的标识就必须由内存地址之外的某些东西来确定了)。 内部数据:它们给出了该对象的状态。 方法:它们产生行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值