黑马程序员—OC基础--对象的属性封装
来源:互联网 发布:编程买什么笔记本好 编辑:程序博客网 时间:2024/05/22 08:17
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ———
/***********
* 今天对 “对象的属性封装”进行学习.收获如下:
*
* 1. 使用 @property和 @synthesize来合成存取方法
*
* 2. 4个不同级别的访问控制符:
* __
* | @public: 公共访问权限,可以在任意地方被访问
* |
* | @private: 彻底隐藏成员变量,这个属性只能在当前类的内部被访问 (实现部分定义属性默认 @private)
* <
* | @protected: 子类访问权限,属性可以被继承到子类 (接口部分定义属性默认 @protected)
* |
* |__ @package: 映像访问权限,可以在当前类实现的同一映像被访问 (同一映像:编译后生成的同一框架或同一执行文件)
*
*
* 3. 在使用@property定义属性时,还可以在@property和类型之间用括号添加一些指示符:
* __
* | assign: 只对属性简单赋值,不更改引用计数。主要适用于基础类型
* |
* | atomic/nonatomic: 限制是否为原子操作(线程安全),aromic是默认值,但多数情况考虑使用nonatomic来提高访问性能。
* |
* | copy: 调用setter时,会将copy出来的副本对象赋值给成员变量。(会将原成员变量所引用的对象引用计数减1)
* <
* | getter/setter: 定义setter和getter的方法名。(setter名要带冒号,如:“setter=abc:”)
* |
* | readonly/readwrite: readwrite为默认值,readonly指示系统只合成getter方法。
* |
* |__ retain: 该成员变量原来所引用的对象引用计数减1,赋值对象引用计数加1.
*
* 4. weak是弱引用,相当于assign,不会造成循环引用。
* strong是强引用,相当于retain,引用存在则对象不会销毁.
*
************/
代码实现:
#import <Foundation/Foundation.h>@interface LBXYCar : NSObject //合成name属性为:副本赋值,线程安全,更改getter名为wawa;setter名为nana。 @property (copy, nonatomic, getter = wawa, setter = writeName:) NSString* name; //合成price属性为:直接赋值,线程安全。 @property (assign, nonatomic) int price;@end@implementation LBXYCar @synthesize name; @synthesize price;@end#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ @autoreleasepool { LBXYCar* aCar = [[LBXYCar alloc] init]; [aCar writeName:@"开心大麻花"]; [aCar setPrice:200]; NSLog(@"%@的价格是:%d亿元。" ,aCar.name, aCar.price); } return 0;}
- 黑马程序员—OC基础--对象的属性封装
- 【黑马程序员】-oc中对象的封装
- 黑马程序员 OC基础: 面向对象_封装(二)
- 黑马程序员——OC基础---基础小结(类方法,匿名对象,封装)
- 黑马程序员——OC面向对象的基础认识
- 黑马程序员——OC—OC中面向对象的特性之封装
- 黑马程序员——OC语言基础——面向对象三大特性之封装
- 黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态
- 4、黑马程序员-OC面向对象—封装
- 黑马程序员-oc基础类方法 封装
- 黑马程序员——OC基础——OC基本语法和面向对象的基本概念
- 黑马程序员--OC面向对象的三大特征——封装、继承、多态
- 黑马程序员—IOS基础之OC—类的三大特性封装、继承、多态
- 黑马程序员——OC语言基础---封装的概念及原理
- 黑马程序员————OC基础——定义OC的类和创建OC的对象
- 黑马程序员--OC封装
- 黑马程序员---OC基础---OC简介、OC与C的差异、类和对象与方法
- 黑马程序员——OC基础---面向对象语法
- SharePoint 2013 开发——概述
- 为eclipse3.6安装subversive插件
- knockout.js模板绑定之利用Underscore.js模板引擎示例
- Java中的隐藏实现细节
- 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
- 黑马程序员—OC基础--对象的属性封装
- require.js+knockout.js+.underscore模板引擎的使用
- "adb server is out of date. killing...? "问题的解决方法
- 最简单的视频编码器:基于libx265(编码YUV为H.265)
- 浮点数运算
- maven setting文件配置详情
- Android调用相机并将照片存储到sd卡上
- 装饰器模式Decorator(结构型)
- 未能加载文件或程序集Microsoft.Office.Interop.Excel 及未能加载文件或程序集Microsoft.Office.Interop.Word的解决办法