黑马程序员--类合成存取方法
2015-05-20 16:05
232 查看
第一个知识点:类的实现和类合成存取方法
</pre>存取方法:取值方法和设置方法<p></p><p>例一:</p><p>第一:演示自己写读取方法和设置方法</p><p></p><p style="margin-top:0px; margin-bottom:0px; font-size:18px; font-family:Menlo; color:rgb(130,46,14)">//接口文件</p><p style="margin-top:0px; margin-bottom:0px; font-size:18px; font-family:Menlo; color:rgb(130,46,14)"></p><pre name="code" class="objc">// // Fraction.h // 第一个类演示 // // Created by smartlei on 15/5/20. // Copyright (c) 2015年 smartlei. All rights reserved. // #ifndef _______Fraction_h #define _______Fraction_h #include <Foundation/foundation.h> @interface Fraction : NSObject -(void) printf; -(void) setNumerator:(int) n; -(void) setDenominator:(int) d; -(int) numerator; -(int) denominator; -(double) converToNum; @end #endif
//实现文件
// // Fraction.m // 第一个类演示 // // Created by smartlei on 15/5/20. // Copyright (c) 2015年 smartlei. All rights reserved. // #import <Foundation/Foundation.h> #include "Fraction.h" @implementation Fraction { int numerator; int denominator; } -(void) printf { NSLog(@"%i/%i",numerator,denominator); } -(void) setNumerator:(int)n { numerator =n; } -(void) setDenominator:(int)d { denominator =d; } -(int) numerator { return numerator; } -(int) denominator { return denominator; } -(double) converToNum { if(denominator!=0) return (double) numerator/denominator; else return NAN; } @end
第二:系统自动生成取值方法和设置方法
接口文件
/
/ // Fraction.h // 第一个类演示 // // Created by smartlei on 15/5/20. // Copyright (c) 2015年 smartlei. All rights reserved. // #ifndef _______Fraction_h #define _______Fraction_h @interface Fraction :NSObject @property int numerator,denominator;//声明属性 -(void) printf; -(double) convertToNum; #endif
实现文件
// // Fraction.m // 第一个类演示 // // Created by smartlei on 15/5/20. // Copyright (c) 2015年 smartlei. All rights reserved. // #import <Foundation/Foundation.h> #include "Fraction.h" @implementation Fraction { int numerator; int denominator; } @synthesize numerator; //自动生成存取方法 @synthesize denominator;//自动生成存取方法 -(void) printf { NSLog(@"%i/%d",numerator,denominator); } -(double) convertToNum { if(numerator!=0) return (double) numerator/denominator; else return MAN; }
第二个知识点:关于访问控制属性说明
特别注意:下边锁引用的全是对象@property()里边的属性
访问控制: readwrite readonly
内存管理:assign 基本(默认) retain 对象 copy 实现NScopying
注意事项:
第一:这3个特性互斥
assign风格的赋值函数
这种特性通常用于标量属性、委托以及不适合保留的其他类型的变量
-(void) setDenominator:(int *)d { denominator =d; }retain风格的赋值函数
只用于处理本身就是对象的数据程序,它指定在传入到赋值函数的值赋给组员变量的同时向其发送一条保留消息
</pre><pre name="code" class="objc">-(void) setDenominator:(NSNumber *)d
{ [denominator autorelease]; denominator =[d retain];//向d发送一条保留信息 }
</pre><pre name="code" class="objc" style="color: rgb(70, 70, 70);">
copy风格的赋值函数
只用于处理本身就是对象的数据程序,它指定在传入到赋值函数的值赋给组员变量复制到对象成员变量
-(void) setDenominator:(NSNumber *)d { [denominator autorelease]; denominator =[d copy]; }
线程安全:atomic nonatomic 非原子性
atomic 原子性的存取器函数
特点:原子性的存取器函数认为是线程安全的
-(NSNumber *) numerator { [threadLock lock]; NSNumber *result=[[numerator retain] autorelease]; [threadLock unlock]; return result; }
nonatomic 非原子的存取器函数
特点:非原子性的存取器函数不能认为是线程安全的
-(NSNumber *) numerator { return [[numerator retain] autorelease]; }
关于self关键字说明
第三个知识点:关键字self的理解
关键字self用来指明对象是当前方法的接受者相关文章推荐
- 黑马程序员_OC语言的点语法和合成存取方法
- Objective-C 合成存取器方法
- 014.@property 合成存取方法
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用(未完成)
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用
- OC隐藏和封装-合成存取方法一(重要)
- 黑马程序员----浅谈RandomAccessFile格式化数据问题和多个对象序列化存取的两个方法
- obj-c编程02:给类自动合成存取方法
- obj-c编程02:给类自动合成存取方法
- 对类的进一步说明:包括合成存取方法、多个参数的方法等
- Objective-C类-Objective-C 合成存取器方法
- obj-c编程02:给类自动合成存取方法
- OC隐藏和封装-合成存取方法二(重要)
- OC隐藏和封装-合成存取方法三(重要)
- 合成存取方法 @property @synthesize
- Objective-C中的property介绍 (合成存取方法)
- 【IOS 开发学习总结-OC-12】★objective-c面向对象之——合成存取方法与点语法
- 浅谈iOS面对对象之合成存取方法
- 黑马程序员——多种方法实现阶乘和
- 黑马程序员_java中堆,栈与方法区笔记总结