黑马程序员学习笔记14_OC之构造方法

本文深入解析Objective-C中的构造方法,包括new方法的工作原理、init方法的重写技巧、自定义构造方法的应用等,并通过实例展示如何高效地创建和初始化对象。

黑马程序员学习笔记14_OC之构造方法

1、 new方法分析

之前我们在学习编程中一致用new方法来创建对象并初始化。实际上new方法创建对象分两步。如何创建一个完整的可用对象也同new方法一样分两步:

1>    分配存储空间

2>    初始化

New方法实际上在内部也用了两个方法来完成此事,用类方法+alloc来分配存储空间,用对象方法-init来进行初始化。

我们之前在编程中用到的例如:Person *p = [Person new]是按照如下两步完成的:

       Person *p1 = [Person alloc]

       Person *p2 = [p1 init]

可以精简为:Person *p =[ [Person alloc] init];要理解好这句话,我们以后创建对象就用这句话。

init 方法即为构造方法,构造方法是用来初始化的方法。

2、 init的重写。有时候我们创建对象的时候不希望它初始化为0,这时我们需要重写init对象方法。重写的方法如下:

这样主函数在执行Person*p =[ [Person alloc] init];时就会给赋初值10了。

1、 上述代码的精简。如下图所示:

5init重写2:在person的基础上再新建一个类student继承person并加入成员no,想要一初始化student就得到年龄为10 ,no为1的学生,在studeng处应该init也重写,代码如下:

1、 自定义构造方法:为了能够以每个都不同的名字创建对象,实例如下:新建一个工程,

这是在person@implementation中写的

这是在person@interface中写的,最后一行体现了能够创建对象加赋值在主函数一行中实现。

这是在主函数中写的:

 

1、 4的基础上再加入一个student类,继承person并加入成员no,怎样可以用一句话实现创建和初始化?

首先在@interface中要声明,然后再@implementation中要写方法如下:

 

可以简化为:

6、自定义构造方法的命名规范:一定是对象方法,一定要-开头;返回类型一般是id类型;方法名一般以initWith开头


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值