黑马程序员 _6 OC基础 set get语法与点语法
来源:互联网 发布:购物网站源码 编辑:程序博客网 时间:2024/05/29 16:44
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、XCode帮助文档找到了下载的方法,
菜单栏Xcode->Preferences选择Documentation,在线下载
二 set和get方法的使用
因为如果成员变量被定义为@public,那么就可以被任意赋值,而没有声明@public,又要管理成员的访问,就要使用set方法和get方法.
1.set方法用来设置成员变量,get方法用来访问成员变量,返回成员变量的值,实际情况中可根据是否需要修改成员变量的值来使用set方法,是否需要获取变量的值使用get方法.
2.set方法与get方法的命名规范:
set方法以set开头,而且后面跟上成员变量名,成员变量首字母必须大写.
get方法与成员变量同名;
成员变量的命名规范:都以下划线_开头,可以与get方法区分开,可以与其他局部变量区分开.
代码:
#import <Foundation/Foundation.h>// 声明@interface Car : NSObject{ int _wheels; // 轮子个数}/*set方法*/- (void) setWheels:(int)wheels;/*get方法*/- (int) wheels;@end@implementation Car// set方法的实现- (void) setWheels:(int)wheels{ // 对外面传进来的轮子数进行过滤 if (wheels<=0) { wheels = 1; } _wheels = wheels;}// get方法的实现- (int) wheels{ return _wheels;}
set方法和get方法的使用,保证了程序的封装性,
而封装的好处是: 过滤不合理的值,屏蔽内部的赋值过程,让外界不必关注内部的细节。
三、类方法
类方法就是利用类名直接执行的方法,以+号开头。
与对象方法的区别:
1.以加号开头,而对象方法以-号开头;
2.只能用类名调用(所以要继承NS0bject);
3.类方法不能访问成员变量,对象方法可以;
4.使用场合:不需要访问成员变量的时候,尽量使用类方法。
另外类方法与对象方法不是一个类型,所以可以同名。
四、self关键字、
self类似于java中的this关键字,在OC中没有this关键字,利用self可以调用调用当前的变量或方法。
self->成员变量名 访问的是当前方法调用的成员变量,
[self 方法名] 调用相应的方法(类的调用类的,对象的调用对象的)。self代表着当前方法的调用者。
self在类方法中的调用
@implementation Student + (void)test2 { } + (void)test3 { [Student test2]; [self test2]; } @endself在对象方法的调用
@implementation Student - (void)test2 { } - (void)test3 { [self test2]; } @end
五、点语法的应用
传统的set/get方法,较为繁琐,OC中提供了点语法来等价于set/get方法,
Student *stu = [Student new]; [stu setAge:100]; int age = [stu age];利用点语法
stu.age=100; int age = stu.age;编译器会自动将点语法的方法展开为相应的set/get方法。
六、@property与@synthesize来替换set/get方法
@property用在.h文件@interface内,可以实现set/get的声明。
@synthesize在.m文件@implementation中实现set/get的实现
@propertyintage( 等价于
- (int)age; // getter
- (void)setAge:(int)age; // setter
@synthesizeage = _age等价于- (int)age{
return_age;
}
- (void)setAge:(int)age{
_age= age;
}
//1.注意@synthesize age = _age; 如果变量age不存在,会自动生成一个@private的成员变量_age//2.Xcode4之后,@property包括了@synthesize的功能,以后只要在.h文件中声明@property就可以完全替换setter和getter。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
- 黑马程序员 _6 OC基础 set get语法与点语法
- [黑马程序员][OC]点语法
- 黑马程序员-OC-点语法
- 黑马程序员--OC-点语法
- 黑马程序员-------OC----点语法
- 黑马程序员.............OC基础语法
- 黑马程序员---iOS基础----OC中的点语法、构造方法
- 黑马程序员——OC基础之点语法
- 黑马程序员---【OC语言】05点语法与作用域
- 黑马程序员 oc随机 点语法
- 黑马程序员------OC基础-----基础语法总结
- 黑马程序员——OC基础语法—点语法和成员变量作用域
- 黑马程序员 _5 OC基础 简单语法
- 黑马程序员——OC基础语法
- 黑马程序员——OC基础语法
- 黑马程序员----OC基础--核心语法、关键字
- 黑马程序员——oc基础语法
- 黑马程序员 OC基础: 常用语法
- Problem : 1202 ( The calculation of GPA )
- 平滑滚动到锚点
- windows游戏编程<六>X86 32位保护模式下的内存管理概述(二)
- 缩放图片
- 滚动时自动加载内容
- 黑马程序员 _6 OC基础 set get语法与点语法
- 检测密码强度
- 预加载图片
- debian下安装fctix却无法使用
- fsdfdsfsdf
- (经过试验)我的驱动和程序共享内存代码
- android 主线程和子线程之间的消息传递
- UVa -- 10324 Zeros and Ones
- jquery error: 200