黑马程序员-iOS视频学习之十六

19 篇文章 0 订阅
4 篇文章 0 订阅

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

前面讲过了如何构建一个类,以及怎么去使用这个类,接下来复习一下构造方法及其如何自定义构造方法。

一、构造方法

展示一个例子来说明一下:

#import "Student.h"
int main(int argc, const char * argv[])
{
    @autoreleasepool {
        Student *stu = [[Student alloc] init];//调用Student的alloc方法分配内存,然后再调用init方法初始化对象
        stu.age = 10;    
        [stu release];
    }
    return 0;
}
上例中像init这样用来初始化对象的方法,就是一种构造方法。

二、自定义构造方法

默认的构造方法,也就是init方法,它是不接收任何参数的。因此,在实际开发中,需要自定义构造方法。
接下来举例,自定义一个构造方法,可以传入一个age参数来初始化Student对象。

1)需要在Student.h中添加方法声明

- (id)initWithAge:(int)age;
上例中的

a. id可以代表任何OC对象

b. 这个构造方法接收一个int类型的age参数,目的是在初始化Student对象时
2)需要在Student.m中定义构造方法

- (id)initWithAge:(int)age {
    self = [super init];//调用父类的构造方法,它会返回初始化好的Student对象,这里把返回值赋值给了self,self代表Student对象本身
    if ( self ) {
        _age = age;
    }//如果self不为nil,给成员变量_age进行赋值
    return self;//最后返回初始化过后的self
}
3)调用构造方法

Student *stu = [[Student alloc] initWithAge:10];//调用了构造方法initWithAge:,并传入10作为参数,因此Student对象的成员变量_age会变为10
NSLog(@"age is %i", stu.age);//打印Student的成员变量_age,打印结果:
[stu release];

4)输出结果

age is 10


复习先总结到这里,接下来去学习OC中的一些框架结构,等复习完在继续总结,加油。。。

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值