对象导论

抽象过程

        (1)万物皆对象。将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作。理论上讲,你可以抽取待求解问题的任何概念化构件(狗、建筑物、服务等),将其表示为程序中的对象。

       (2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。要想请求一个对象,就必须对该对象发送一条消息。更具体的说,可以把消息想象为对某个特定对象的方法的调用请求。

       (3)每个对象都有自己的由其他对象所构成的存储。换句话说,可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂的体系, 同时将其复杂性隐藏在对象的简单性背后。

如果在B类里面new了A,B和A就有联系了,A肯定得在某个类的里面new

       (4)每个对象都拥有其类型。按照通用的说法,“每个对象都是某个类(class)的一个实例(instance)”,这里“类”就是“类型”的同义词。每个类最重要的区别于其他类的特性就是“可以发送什么样的消息给它”。

意思是说,对象之间可以相互调用,这个调用也就是他说的发送消息,比如B的对象里面有个方法调用了A的方法,也就是B对A发送了消息

       (5)某一特定类型的所有对象都可以接收同样的消息。这是一句意味深长的表述,例如,“圆形”类型的对象同时也是“几何形”类型的对象,所以一个“圆形”对象必定能 够接受发送给“几何形”对象的消息。这意味着可以编写与“几何形”交互并自动处理所有与几何形性质相关的事物的代码。这种可替代性是OOP中最强有力的概念之一。

每个对象都有一个接口

         怎么获得有用的对象呢?必须有某种方式产生对象的请求,使对象完成各种任务,如完成一笔交易,在屏幕上画图,打开开关等。每个对象都只能满足某些请求,这些请求由对象接口所定义,决定接口的便是类型,以灯泡为例

light lt =new light();

lt.on();

       接口确定了对某一特定对象所能发出的请求。但是,在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现。从过程型编程的观点来看,这并不太复杂。在类型中,每一个可能的请求都有一个方法与之相关联,当向对象发送请求时,与之相关联的方法就会被调用。此过程通常被概括为:向某个对象“发送消息”(产生请求),这个对象便知道此消息的目的,然后执行对应的程序代码。
       上例中,类型/类的名称是Light,特定的Light对象的名称是lt,可以向Light对象发出的请求是:打开它、关闭它、将它调亮、将它调暗。你以下列方式创建了一个Light对象:定义这个对象的“引用”(lt),然后调用new方法来创建该类型的新对象。为了向对象发送消息,需要声明对象的名称,并以圆点符号连接一个消息请求。从预定义类的用户观点来看,这些差不多就是用对象来进行设计的全部。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值