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

   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,称之为发送消息给对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值