黑马程序员_OC学习之@property、点语法
2014-06-24 23:05
375 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、点语法:通过"."调用类中的set和get方法来设置和访问成员变量
例如:
注意:使用点语法设置成员变量在许多语言中都存在,不过在oc中,点语法不是直接操纵成员变量,而是调用set和get方法。
----------------------------------------------------------------------------------------------------------------------------------------------------------
二、@property:与@synthesize共用,让OC自动生成get和set方法,在xcode4.4以后,@synthesize功能已经被@property取代,不过还有一个功能,我们通过例子来介绍。
4000
先说下@property三个功能:1、声明一个成员变量的get和set方法;
2、实现该成员变量的get和set方法;
3、如果这个成员变量没有定义,那么会自动生成一个以下划线"_"开头的变量(默认是访问属性为@private);
例如:
注意:使用@property可以帮助我们省掉许多不必要的代码,但是如果我们想让某个类的子类访问该类的成员变量,就必须自己定义变量,而不用@property生成,因为它生成的是具有@private属性的成员变量。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、点语法:通过"."调用类中的set和get方法来设置和访问成员变量
例如:
<span style="font-size:18px;">#import <Foundation/Foundation.h> @interface Person : NSObject { @private int _age; @public int _id; } - (int)age; - (void)setAge:(int)age; @end @implementation Person - (int)age { return _age; } - (void)setAge:(int)age { if(age < 0) { age = 1; } _age = age; } @end @interface Student : Person @end @implementation Student @end int main() { Person *p = [Student new]; //学生同时也是人 p.age = 10; //这句话等同于[p setAge] NSLog(@"%d",p.age); //OC会自动检测是访问还是设置成员变量,这里为访问所以等同于[p age]; return 0; }</span>
注意:使用点语法设置成员变量在许多语言中都存在,不过在oc中,点语法不是直接操纵成员变量,而是调用set和get方法。
----------------------------------------------------------------------------------------------------------------------------------------------------------
二、@property:与@synthesize共用,让OC自动生成get和set方法,在xcode4.4以后,@synthesize功能已经被@property取代,不过还有一个功能,我们通过例子来介绍。
4000
先说下@property三个功能:1、声明一个成员变量的get和set方法;
2、实现该成员变量的get和set方法;
3、如果这个成员变量没有定义,那么会自动生成一个以下划线"_"开头的变量(默认是访问属性为@private);
例如:
<span style="font-size:18px;">#import <Foundation/Foundation.h> @interface Person : NSObject { // int _age; //如果没有定义该成员变量,那么会自动生成这个名字的成员变量。 int age; //如果变量名字这样命名,那么@property会不清楚使用这个变量还是_age这个变量,这时我们就要使用@synthesize来帮助@property取消歧义。 } @property int age; //等同于下面两句 //- (int)age; //- (void)setAge:(int)age; @end @implementation Person @synthesize age = age; //指明使用age这个变量,而不是生成_age @end int main() { Person *p = [Person new]; p.age = 10; NSLog(@"%d",p.age); return 0; }</span>
注意:使用@property可以帮助我们省掉许多不必要的代码,但是如果我们想让某个类的子类访问该类的成员变量,就必须自己定义变量,而不用@property生成,因为它生成的是具有@private属性的成员变量。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
相关文章推荐
- 黑马程序员-我的第十篇学习日记:OC中点语法,@property和@synthesize,完整创建一个可用对象
- 黑马程序员——OC语言学习——Xcode开发初始化、点语法、成员变量作用域、关键字@property和@synthesize
- 黑马程序员之ios学习总结——09 OC语言的点语法、@property和@synthesize
- 黑马程序员 OC------入门语法学习
- 黑马程序员_OC学习之点语法
- 黑马程序员--IOS入学学习--8-OC核心语法
- 黑马程序员-IOS学习笔记-OC基础OC简介及基本语法
- 黑马程序员-8-Objective-C学习笔记(OC特有语法)
- 黑马程序员——OC学习——基础语法二
- 黑马程序员———OC学习第三天(@property和@synthesize关键字)
- 黑马程序员IOS-OC语言-点语法、@property
- 黑马程序员——OC基础语法—@property和@synthesize使用
- 黑马程序员学习笔记_OC之@property和@synthesize
- 黑马程序员——OC基础学习(三)---从传统setter方法和getter方法到@property增强型使用(体验代码的优化过程)
- 黑马程序员——OC学习——@property和构造方法
- [黑马程序员]12[OC语言]OC基本语法部分学习笔记总结
- 黑马程序员:OC学习日记之核心语法二
- 黑马程序员_iOS开发之OC之面向对象之多文件操作、点语法、成员变量的作用域和关键字@property与@synthesize
- 黑马程序员————IOS学习笔记 第6篇 OC特殊语法(2)
- OC学习之@property和点语法