objective-c中的构造函数(对象初始化)(七)

objective-c中的构造函数(对象初始化)(七)

ID:3899942

大小:331.96 KB

页数:6页

时间:2017-11-25

objective-c中的构造函数(对象初始化)(七)_第1页
objective-c中的构造函数(对象初始化)(七)_第2页
objective-c中的构造函数(对象初始化)(七)_第3页
objective-c中的构造函数(对象初始化)(七)_第4页
objective-c中的构造函数(对象初始化)(七)_第5页
资源描述:

《objective-c中的构造函数(对象初始化)(七)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文由兰州中研白癜风研究所http://wxjwbxg.com/收集,转载请注明出处objective-c中的构造函数(对象初始化)(七)以前我们创建对象时都是用new,从java过来的同学也都有这种习惯,其实objective-c中还有一种地道的创建对象的方法:[[类名alloc]init].这种方法才是OC中创建对象的正统,不过效果和new是一样的,但是这种方法更能表示创建对象的实质,那就是分配内存,初始化对象。alloc是在内存中划分一片空间,这片空间是一片处女地,然后呢,init初始化,我们

2、可以在初始化的时候设置一些基本属性的值,这样就不用在创建对象后再调用方法来赋值。看代码:human.h:[plain]viewplaincopy1.#import2.3.@interfaceHuman:NSObject4.{5.intage;6.NSString*name;7.}8.-(void)setAge:(int)asetName:(NSString*)n;9.-(int)age;10.-(NSString*)name;11.@endhuman

3、.m:[plain]viewplaincopy1.#import"Human.h"2.3.@implementationHuman4.-(id)init5.{6.if(self=[superinit])7.{8.age=20;本文由兰州中研白癜风研究所http://wxjwbxg.com/收集,转载请注明出处本文由兰州中研白癜风研究所http://wxjwbxg.com/收集,转载请注明出处9.name=@"holy";10.}11.returnself;12.}13.-(void)setAge:(

4、int)asetName:(NSString*)n14.{15.age=a;16.[namerelease];17.18.name=[ncopy];19.}20.-(int)age21.{22.returnage;23.}24.-(NSString*)name25.{26.returnname;27.}28.@endmain.m:[plain]viewplaincopy1.#import2.#import"Human.h"3.intmain(inta

5、rgc,constchar*argv[])4.{5.NSAutoreleasePool*pool;6.pool=[[NSAutoreleasePoolalloc]init];7.8.Human*human=[[Humanalloc]init];9.NSLog(@"名字%@,年龄%d",[humanname],[humanage]);10.11.[humansetAge:100setName:@"GOD"];12.NSLog(@"名字%@,年龄%d",[humanname],[humanage]);1

6、3.14.[humanrelease];15.[poolrelease];//相当于对池中每个对象执行了一次release;16.17.18.}本文由兰州中研白癜风研究所http://wxjwbxg.com/收集,转载请注明出处本文由兰州中研白癜风研究所http://wxjwbxg.com/收集,转载请注明出处上面的代码,在human类中有一个init方法,继承于NSObject类中,不用在human.h文件中声明,也可以不写,如果要设置默认的属性,就可以重写init方法,在里面进行对象的初始化,然

7、后呢生成出来的对象就会有自己的默认属性值了。其中有一行if(self=[superinit])这行代码主要是为了防止父类初始化失败,如果父类初始化失败了,会返回一个nil值,虽然可能性很小这种初始化方法很好理解,但是有个缺点就是生成对象的默认属性值是固定的,如果想要修改的话需要再调用set方法,那么有没有可以在生成对象的时候自定义属性值的方法呢?既然这样说了,肯定是有的嘛,吼吼,请看代码:Human.h:[plain]viewplaincopy1.#import

8、ion.h>2.3.@interfaceHuman:NSObject4.{5.intage;6.NSString*name;7.}8.-(id)initWithAge:(int)aName:(NSString*)n;9.-(int)age;10.-(NSString*)name;11.@endHuman.m:[plain]viewplaincopy1.#import"Human.h"2.3.@implementationHuman4.-(id)init5.{6.if(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。