我的OC升级之路(二)

完成了OC的类的声明, 开始类的实例化.

方法也是有返回值的, 方法的名字要有冒号  : 

    -          (void)     setNum             :                (NSString *)       n;

method     return     method   method take       argument        argument

type           type        name        argument           type               name

<span style="font-size:14px;">- (void)setSex:(NSString *)gender;</span>
函数是没有类型的, 方法是有类型的, 类方法, 实例方法. 如果没有定义放法的类型, 系统会默认设置为 id 类型. id 类型可以代表任意的类型.

<span style="font-size:14px;"> // 创建一个学生类
    Student *stu = [[Student alloc] init];
    [stu setName:@"博尔特"];
    [stu sayHi];
    [stu setSex:@"男"];
    NSLog(@"%@!!!!", [stu sex]);
</span>

具体步骤. 首先要引入头文件, 因为oc的对象都是在堆区的, 所以要有指针   *  我们用alloc 来为stu 这个对象分配一段内存.

alloc 本身就是NSObject 的方法  分配完空间之后, 就进行初始化.  init  也是NSObject 的方法.

<span style="font-size:14px;">+ (instancetype)alloc;
- (instancetype)init;</span>
所以在OC和对象有关的都离不开方法. 面向对象的编程语言. 我有的方法你对象才可以用, 和我无关的方法, 你对象用也用不了.

还是比较爱憎分明的嘛.  OC的内存和c的区也是一致的,  stu 就是堆区的,  只可以通过指针进行间接访问.

OC的空对象  nil 与NULL不同, 你和一个空对象发送任何message  是没有任何意义的. 没有初始化的对象是一个野指针.

你向一个空对象发送任何消息是不起作用的.

消息的传递 消息的接收者一定是个指针. [receiver message] 消息和实例方法是同名的.

<span style="font-size:14px;"> [person setName:@"乔布斯"];  // 向person 对象发送setName: 消息设置名字为乔布斯</span>
也可以发送一个不存在的方法, 消息是否执行 取决于对象.系统会显示不认识.



2015.2.12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值