您的位置:首页 > 移动开发 > Objective-C

Objective C 学习之路2 类的定义和实现

2010-12-09 22:13 274 查看
Objective C的基本语法和C++都是一样的,本来也是,都是从C演变来的,但是到了类这块就开始不一样了,反正我第一次看到,就是觉得特别看不顺眼,C++用太久了哈!

下面是一个类在Obj C下的定义格式,这里如果要定义一个类就必须以@interface ClassName开始,以@end为结束,原因似乎是说Objective-C都是以关键字@,作为编译路径的。

@interface ClassName : ItsSuperclass

{
instance variable declarations
}
method declarations
@end

这里ClassName就是类名,ItsSuperclass,就是继承类。还有就是,类的成员变量都定义在大括号内,而方法是放在大括号外面的,这个是和C++很不相同的。变量的定义基本不变,和C++一样也有三种访问权限,不过要写成@public,@protected 和@private.

最大不同是方法的定义,除了要放到括号外,还必须要在方法定义前加这个'-'符号,说明是定义方法而不是函数。然后在'-'后面紧跟返回类型,要用括号括起来,下来是名字,然后奇怪的地方又出来了,这里方法的参数是在methodName:后面用(Type) argument的方式表示出来,一个‘:'代表一个参数

-(Type)methodName:(Type) argument

定义完了类之后,就要实现类的具体方法,首先要写@implementation ClassName,然后用和在定义中定义方法的格式一样,在大括号里实现方法的具体代码。

@implementation ClassName

-(Type)methodName:(Type) argument{

//statement

}

@end

初始对象,这里也和C++有些不同,方式也有些古怪,当我们要new一个新的指针对象时,格式如下

[receiver message:arguments],其中receiver可以是一个对象或者类。

在Obj-C中方法要被分为两类来看,一类是给对象定义的叫 instance method(实例方法),另一类就是为类定义的叫做class method(类方法) 。

ClassName *object=[ClassName new];看到new就知道是在分配内存,但是在这里,还有一层意思是说给这个新的对象发送一个init的消息,zero所有的的成员变量。

在对象调用方法的时候也同C++有区别,比如[object ClassMethod],等同于C++中的object->ClassMedthod,称之为发送消息给对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐