第六章、objective-c类的初始化及一些c特性

第六章、objective-c类的初始化及一些c特性

ID:44984857

大小:90.68 KB

页数:23页

时间:2019-11-06

第六章、objective-c类的初始化及一些c特性_第1页
第六章、objective-c类的初始化及一些c特性_第2页
第六章、objective-c类的初始化及一些c特性_第3页
第六章、objective-c类的初始化及一些c特性_第4页
第六章、objective-c类的初始化及一些c特性_第5页
资源描述:

《第六章、objective-c类的初始化及一些c特性》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第六章类的初始化及一些c特性内容概要类的初始化作用域回顾存储类别说明其它一些C语言特性类的初始化回顾覆盖dealloc函数@interfaceFraction:NSObject......-(void)dealloc;@end@implementationFraction-(void)dealloc{if(origin)[originrelease];[superdealloc];}@end类的初始化(cont.)初始化方法:用于对象初始化@interfaceFraction:NSObject......-(Fraction*)initWith:(int)n:(int

2、)d;@end@implementationFraction-(id)initWith:(int)n:(int)d{if(self=[superinit]);[selfsetNumerator:nandDenominator:d];returnself;}@end类的初始化(cont.)【注意】1、常见的编程习惯是所有的初始化方法都以init...开头2、如果含有多初始化方法,应该有一个为指定的初始化(designated)。通常它是含有参数最多的初始化3、其它初始化方法内部应该调用指定初始化方法,从而可把大部分初始化代码集中到单个方法中4、最好将初始化方法的返回值设

3、置为id类型类的初始化(cont.)//demo6_1@interfaceFraction:NSObject......-(id)initWith:(int)n:(int)d;-(id)initDenominator:(int)n;-(id)initNumerator:(int)n;@end@implementationFraction......-(id)initDenominator:(int)n{if(self=[superinit])[selfinitWith:0:n];returnself;}-(id)initNumerator:(int)n{if(self

4、=[superinit])[selfinitWith:n:0];returnself;}@end类的初始化(cont.)//demo6_1#import"Fraction.h"intmain(intargc,char*argv[]){NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];Fraction*a,*b;a=[[Fractionalloc]initWith:1:3];b=[[Fractionalloc]initWith:3:7];[aprint];[bprint];[arelease];[brelease

5、];[pooldrain];return0;}内容概要类的初始化作用域回顾存储类别说明其它一些C语言特性作用域回顾控制实例变量作用域的指令@protected@private@public作用域回顾(cont.)@protected这个指令后面的实例变量可被该类及任何子类中定义的方法直接访问。这是默认的情况。@private这个指令后面的实例变量可被定义在该类的方法直接访问,也可被其他类或模块中定义的方法直接访问@public这个指令后面的实例变量可被该类中定义的方法直接访问,也可被其他类或模块中定义的方法直接访问作用域回顾(cont.)@interfaceFract

6、ion:NSObject{@public//method@protected//instancevariablesormethod@private//instancevariablesormethod}@end【注意】1、这些指令到另一个指令开始结束2、public指令使得可以通过指针运算符->访问实例变量3、将实例变量声明为公共的不是良好的编程习惯作用域回顾(cont.)//demo6_2#import@interfaceFoo:NSObject{@publicintvar;}@propertyintvar;@end

7、@implementationFoo@synthesizevar;@endintmain(intargc,char*argv[]){NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];Foo*myObj=[[Fooalloc]init];myObj->var=0;NSLog(@"membervar=%i",myObj->var);[pooldrain];return0;}作用域回顾(cont.)外部变量:与C相同在全局作用域内定义,可以被其他文件访问。在其他文件中访问前需做extern声明int

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

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

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