26

原创内容转载请注明来源http://www.hjide.com/article/630.htm

消息语法

要让一个对象做些什么的话,你需要给他发一个消息告诉他执行某一个方法。在Objective-C里, message expressions are enclosed in brackets:

[receiver message]

接收器是一个对象,消息告诉它该做些什么。在源代码里就是简单的把方法的名称以及所有的参数传递给他。当一个消息发送后,运行时系统通过接收器的指令系统发射找到这个方法。

举个例子,一条消息告诉myRect对象去执行display方法, 让这个矩形对象显示他自己的原因是:

[myRect display];方法也可以是有参数的。假设下面这个消失告诉myRect他的位置在窗口的左边是 (30.0, 50.0):

[myRect setOrigin:30.0 :50.0];

这里方法的名字是setOrigin::,有2个冒号每个表示一个参数。每个参数跟在冒号的后面。这个方法名里没有使用标签参数,这让参数的类型和作用变得难以分辨。相反的方法名应该包含一些标签来描述他们的参数。方法名中参数的标签在每个冒号之前setWidth:height:方法, 下面的例子明确表明了2个参数的作用:

[myRect setWidth:10.0 height:15.0];

       一个方法可能具有可变个数参数的情况并不少见,这些额外的参数用都好隔开跟在方法名的后面(和冒号的情况不同的是这部分并不认为是方法名)。下面的例子假设makeGroup:方法有一个必须的参数group和3个可选的参数: 更多详细内容 »

Tags: , , ,

作者:Jock

26

原创内容转载请注明来源http://www.hjide.com/article/626.htm

对象

就像对象这名字所指的一样,面向对象编程都是围绕着对象进行的。对象和数据之间是通过一系列特定的能使用和操作数据的操作联系在一起的。在Objective-C里这些特定的操作是对象的函数(方法);他们能操作的是对象的实例变量。本质上对象就是一段程序代码,这段代码包含一系列数据和一组函数。

举个例子,假设你写一个画图程序,这个程序能划线、圆、矩形、文字和位图等等,你可能会创建一个所有这些基本形状的类来给用户使用。一个矩形对象的实例应该包含这个矩形的位置,长和宽,矩形的颜色和是否填充以及矩形的线条样式。一个矩形类应该还有一些方法来设置矩形的位置、大小、颜色、填充状态和线条样式,这些方法一起影响这个矩形的展现。

       在Object-C里一个对象的实例的变量是对象的内部变量,通常你访问一个对象的状态只能通过对象的方法(你可以用scope directives来让子类或者其他对象直接访问对象实例中的变量)。其他访问对象状态的途径只能通过对象所提供的方法返回的信息。举个例子,一个矩形对象会提供表面自己大小和位置的方法。

       此外,一个对象仅能发现为他设计的方法,它不会错误的执行来自其他对象的方法。就像在C函数中的函数变量对于其他函数来说是不存在一样,对象的实例变量和方法实现对外也是隐藏的。 更多详细内容 »

Tags: , , ,

作者:Jock

26

第一章 类和对象 2
对象 2
id 3
动态造型 3
对象消息 4
消息语法 4
给nil发送消息 6
接收实例变量 6
多态 7
动态绑定 8
类 9
继承 10
NSObject类 11
继承实例变量 12
继承方法 13
覆盖一个方法 14
抽象类 14
类类型 15
静态类型 15
内省类型 16
类对象 16
创建实例 17
自定义类对象 18
变量和类对象 19
初始化类对象 21
基类的方法 22
源码中的类名 23
第二章 类定义 24
源文件
 24
类接口 25
引入接口 26
提交给其他类 27
接口的规则 27
类的实现
 28
提交给实例变量 29
实例变量的作用范围 30

 

一時興起決定翻譯下Apple的,才剛剛動手翻了一章多一點點,不知道有沒有人已經做過類似的事情了呢

Tags: , ,

作者:Jock

Switch to our mobile site