对象导论

“我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来…除非赞成这个协定中规定的有关语言信息的组织和分类,否则我们根本无法交谈。”
——Benjamin Lee Whorf

抽象的过程

我们能够解决的问题的复杂性直接取决于抽象的类型和质量。

  1. 类型是指所抽象的是什么
  2. 质量是指抽象得好不好

对问题的描述、理解和最后解决问题是对问题的建模,建模建得越好就能更好的解决问题,建模过程就是对问题的抽象。将问题空间的元素及其在解空间的表示称为对象“。这种思想的实质是:我们可以通过添加新类型的对象是自身适用于某个待定问题。面向对象编程(OOP)允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。

对象具有状态、行为和标示

  1. 状态:每个对象都可以拥有自己的内部数据,即保存有自己的数据。
  2. 行为:每个对象都有自己的方法。
  3. 标示:每个对象在内存中都有自己的唯一地址和其他对象区分开来。

笔者理解,对象还有自己的类。

OOP程序是对象的集合,对象之间通过发送消息来告知彼此所要做的事情。消息可以想象为对对像方法的调用请求。程序中万物皆为对象,对象可以存储数据并可以执行操作。可以抽象待解问题的任何概念化构建将其表示为程序中的对象。每个对象都有自己的由其他对象所构成的存储,并且每个对象都有自己所属的类型,同一类型的对象可以接受同样消息(方法调用请求)。

每个对象都有一个接口

程序执行期间具有不同状态而其他方面都相似的对象都被分组到对象的类中,这就是class的由来。每个对象都属于定义了特性和行为的某个特定的类。创建抽象数据类型(类)是面向对象程序设计的基本概念之一。抽象数据类型的运行方式和计算机内置的数据类型几乎完全一致,二者的却别在于程序员通过定义类来适应问题,而不在被迫只能使用现有的用来表示机器中的存储单元的数据类型。OOP程序中数据类型用class表示

可以向对象发送什么样的消息?消息可以想象为对对像方法的调用请求。即对象能接受那些消息?接口决定了可以向某一特定对象所能发出的请求。而决定接口的是对象的类。每一个可能的请求都有一个方法与之相关联,当向对象发送请求时,与之关联的方法就会被调用。此过程概括为:向某对象“发送消息”,这个对象便知道此消息的目的,然后执行对应的程序代码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值