【学习ios之路:Objective-C】设置器,访问器,自定义初始化和多参赋值
来源:互联网 发布:淘宝网页版怎么看微淘 编辑:程序博客网 时间:2024/06/07 01:02
1.设置器和访问器的定义
* 给单一实例变量赋值的方法叫做设置器.(setter方法)
* 给单一实例变量值的方法叫做访问器.(getter方法)
2.为什么用设置器(setter)和访问器(getter)
* 实例变量的可见度有:
1).private:只有在本类文件中访问.即.h和.m文件,,访问方式:直接访问.
2).protected:在本类文件和子类文件中访问.访问方式:直接访问.
3).public: 在本类文件和子类文件及其它文件都可以访问. 访问方式:在本类及子类是直接访问,在其它文件:对象(实例访问)
* 系统默认的实例变量可见度是@protected.
* 1.为什么不默认@public?
* @public或造成实例变量公开的,在任何地方都可以访问,不安全,违背了封装(方便别人,为难自己)的思想.
* 2.为什么不默认@private?
* @private会造成父类的实例变量子类不可以访问,违背了继承(子类继承以及可以访问从父类继承的内容)的思想.
3.settter与getter命名规范
* setter方法命名规范 * :减号方法 无返回值 ,以set开头 +实例变量名首字母大写,有一个参数,参数的类型与实例变量名相同,参数名与实例变量名相同. * getter方法命名规范 :减号方法 无返回值.返回值类型和实例变量类型相同,方法名和实例变量名相同,无参数. *
例如:Person.h文件
@interface Person : NSObject{ NSString *_name; NSString *_sex;} //setter和getter- (void)setSex:(NSString *)sex;- (NSString *)sex;- (void)setName:(NSString *)name;- (NSString *)name;@end2).实现getter和setter方法: Person.m文件,
@implementation Person- (void)setName:(NSString *)name { _name = name;}- (NSString *)name { return _name;}- (void)setSex:(NSString *)sex { _sex = sex;}- (NSString *)sex { return _sex;}@end3).访问实例变量
{ Person *person = [[Person alloc] init]; [person setName:@"asd"]; NSString *name1 = [person name]; NSLog(@"%@", name1); }
4.对象自定义初始化
自定义初始化 :如果想再对象初始化时赋一些有意义的初值,则需要自定义初始化方法
例:1).声明
//给Person对象,进行初始化赋值- (id)initWithName:(NSString *)name sex:(NSString *)sex;2).自定义初始化方法实现.
//初始化操作还是赋值操作,只不过该过程在初始化阶段.- (id)initWithName:(NSString *)name sex:(NSString *)sex { self = [super init]; if (self != nil) { _name = name; _sex = sex; } return self;//在减号方法中代表调用该方法的对象.}
5.多参赋值.
例子:1)声明
- (void)setName:(NSString *)name sex:(NSString *)sex;2).实现
//多参赋值实现- (void)setName:(NSString *)name sex:(NSString *)sex { _name = name; _sex = sex;}6.自定义初始化和多参赋值的区别
1.时机不同:初始化方法是在初始化阶段,赋值方法是在对象创建完之后
2.调用次数不同:初始化一个方法生命周期内只能调用一次,赋值方法调用多次.
3.作用不同:初始化是赋值,赋值是改值.
初始化:
对象开辟空间之后立即做赋值操作,此过程叫初始化,一个对象的空间开辟只有一次,所有初始化过程也只有一次.
注:#pragma mark - +号方法 //(编译指示:pragma)当函数方法过多时,可以清晰查询加减号方法
- 【学习ios之路:Objective-C】设置器,访问器,自定义初始化和多参赋值
- Objective-c语言_设置器和访问器
- Objective-C语言_设置器和访问器
- Objective-C学习- 便利初始化函数和便利构造器
- 【学习ios之路:Objective-C】NSString和NSMutableString
- 【学习ios之路:Objective-C】NSArray和NSMutableArray
- 【iOS开发之Objective-C】初始化对象
- 【黑马程序员】iOS学习之路——Objective-C之封装、继承和多态
- Objective-C - OC访问器学习笔记
- 【IOS 开发学习总结-OC-11】★objective-c面向对象之——封装和访问控制符
- Objective-C之初始化
- IOS学习之二:Objective-C基础语法和关键字
- IOS学习之二:Objective-C基础语法和关键字
- IOS学习之Objective-C中的@property和@synthesize用法
- 【IOS 开发学习总结-OC-15】objective-c面向对象之——对象初始化
- 【Objective-C】OC 中对象属性的设置器和访问器
- Objective-C的那些事——设置器(setter)和访问器(getter)
- 【学习ios之路:Objective-C】继承,便利构造器.NSString应用
- jquery ajax 调用WebService
- 输入和输出--java序列化机制
- swift 专题
- ubuntu12.04 LTS GRUB启动项需要回车一下才可以进系统问题
- 不忘初心
- 【学习ios之路:Objective-C】设置器,访问器,自定义初始化和多参赋值
- .chm反编译成html
- fedora21-安装搜狗输入法
- 关于Linux的发音
- Uri类讲解
- Convert Sorted Array to Binary Search Tree (Java)
- php读取操作大文件,超出内存大小,三种方法
- qt creator using mysql plugin(driver install)
- 多线程 学习笔记<4> 进程与线程的区别联系