Cocoa编程之新手上路第二课.PDFVIP

  • 3
  • 0
  • 约8.89千字
  • 约 7页
  • 2018-12-31 发布于天津
  • 举报
Cocoa编程之新手上路第二课.PDF

渤麦堂 /modules/sdcection/print.php?articl... Cocoa编程之新手上路:第二课 我们在上一课里制作了一个简单的程序,我们学习了: 用Project Builder (PB) 建立新的 project 用 Interface Builder (IB) 设计程序界面 生成类,定义 outlet (插头)和action (动作). 连接界面和程序的执行代码 (connection). 现在我们来籍此分析一下其背后的Cocoa 面向对象编程思想。 图2-1 界面(interface) 和 内部构造(implementation) 的隔离的例子 来看一个现实世界中的一个机械钟表 ( 图2-1),对于一个使用者来说,他所看 到的的只是一个时间显示,一个界面(interface), 他看不到也不关心这个钟表 的内部是如何构造来实现报时的功能,钟表的界面(interface) 把内部机构 (implementation) 屏蔽隔离开来,只有钟表的制作者知道并关心内部的构 造,他的责任就是让钟表提供给用户一个实现报时的功能的界面,并把内部 的实际构造(implementation) 封装起来,使外界看不到。 拿到程序设计中,我们就是钟表匠,我们用程序语言来描述钟表这样这样一 个能报时的物体,(这个过程叫抽象(abstraction),就是抛开表面的细节,抓 住事物的本质,因果关系,这是我们人类认识世界的方法)。我们要使用户 能通过与这个“物体”的交互得到需要的功能(指示时间),而我们作为制作 者要把内部的实施部分隔离开来,因为用户不关心内部的构造。这时我们可 以把这样的一个物体叫做”对象“ (object). 一个对象(object) 包含一定的行为或功能(function )和实现这些功能的内部 结构(structure),内部的结构(数据结构)是封装起来的,外界看不到,在这 个对象的内部,外界只能通过得到这个对象的行为或功能。这些功能叫做这 个对象的方法(method) , 而内部的数据结构就叫做他的实例变量(instance variable). 方法把内部的实例变量(数据部分)包裹起来,使之与外界隔离。 图 2-2 一个对象 (object) 第1页共7页 2007-6-5 22:45 渤麦堂 /modules/sdcection/print.php?articl... object = instance variables + instance methods 一个程序里有很多的object, 他们之间的通讯是相互之间传递消息 (message ). 当一个对象接受到其他对象传递来的消息时,就会相形的执行 自己内部的方法(method). Objective-C 不同于其他面向对象语言(如 C++) 的一个显著特点是,它不需 要你事先知道要传递给消息的对象是哪个类的,这叫做动态绑定(动态捆 绑)或运行时绑定,也就是说消息会在运行的时候才被和对象绑到一块(结 合),而不是在编译的时候去做绑定。这样的好处是非常的灵活,给予程序 员极大的自由度。比如,我们要在一个文本编辑程序中截取(cut) 文本或图 片或表格等,程序不必事先知道要发送 cut:消息给那一类的目标对象。 objective -C 里面,用一个id变量来表示一个对象,(既 id object 这样的格 式),实际上就是一个指向内存中的对象数据。objective -C运行的时候会检 查核对这个id 指针到底指向那一类的对象。

文档评论(0)

1亿VIP精品文档

相关文档