一 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:
Apple,
iPhone,
Mac,
Objective-C 作者:Jock
一 26
原创内容转载请注明来源http://www.hjide.com/article/626.htm
对象
就像对象这名字所指的一样,面向对象编程都是围绕着对象进行的。对象和数据之间是通过一系列特定的能使用和操作数据的操作联系在一起的。在Objective-C里这些特定的操作是对象的函数(方法);他们能操作的是对象的实例变量。本质上对象就是一段程序代码,这段代码包含一系列数据和一组函数。
举个例子,假设你写一个画图程序,这个程序能划线、圆、矩形、文字和位图等等,你可能会创建一个所有这些基本形状的类来给用户使用。一个矩形对象的实例应该包含这个矩形的位置,长和宽,矩形的颜色和是否填充以及矩形的线条样式。一个矩形类应该还有一些方法来设置矩形的位置、大小、颜色、填充状态和线条样式,这些方法一起影响这个矩形的展现。
在Object-C里一个对象的实例的变量是对象的内部变量,通常你访问一个对象的状态只能通过对象的方法(你可以用scope directives来让子类或者其他对象直接访问对象实例中的变量)。其他访问对象状态的途径只能通过对象所提供的方法返回的信息。举个例子,一个矩形对象会提供表面自己大小和位置的方法。
此外,一个对象仅能发现为他设计的方法,它不会错误的执行来自其他对象的方法。就像在C函数中的函数变量对于其他函数来说是不存在一样,对象的实例变量和方法实现对外也是隐藏的。 更多详细内容 »
Tags:
Apple,
iPhone,
Mac,
Objective-C 作者:Jock
近期评论