IOS--OC--Lesson 封装 setter getter
2015-06-26 22:07
441 查看
一 封装:
1.目的 为了实现高内聚,低耦合
内聚:模块内成员的关系程度
耦合:模块与模块之间的关系程度
降低耦合性 内聚性就会升高
2.为什么要进行封装?
目的是为了讲数据隐藏起来 只能用此类的方法才可以访问或修改,不能被外界任意存储数据是面对对象的设计本质,降低数据的误用型;
3.@public @protected @private 的用法
1⃣@public 公共的 谁都可以用 很危险
2⃣@protected 受保护的(默认值) 不允许在类的外部访问实例变量 但可以在子类中得内部被访问.函数中就会不可调用
①类的内部:实例变量名直接访问
②类的外部:使用方法去访问 (设置器 访问器);
③ 设置器 setter 方法
④访问器 getter 方法
设置 getter 方法步骤
/*
1.一定是对象方法
2.一定有返回值 返回的类型要和实例变量的类型一致
3.方法名就是实例变量名(要去掉下划线_);
*/
3⃣@private 私有的 外部不可见 只有本类中得可见,子类中也不可见;
① 内部访问:实例变量名
外访问:通过设置器和访问器
二 方法
1. OC 中方法大体分为:类方法和对象方法
// 类方法:+加号开头 由类名来调用
// 对象方法:-减号开头 由 对象调用
//判断方法是否重名 :1. + -号;2. 方法名;
PS girl *p1 =[[girl alloc]init];
// 调用对象方法 用对象 就是新赋值的那个变量名
// [p1 sayHello];
// 调用类 用设定好的类 比如 girl 这个就是类
// [girl sayHello];
2.类方法和对象方法总结
// 对象方法
1.- 开头
2. 在对象方法中能够使用实例变量
3.对象方法只能由对象调用[对象名 方法];
// 类方法
1.+ 开头
2.在类方法中不可以使用实例变量 (类方法由类来调用,并没有给他开辟空间)
3.只能由类方法调用 [ 类名 方法];
4.使用类的好处:不依赖创造的对象 更灵活 执行效率高 能用类解决 尽量用类.
5.场合:类方法中不需要实例变量的适合,使用类方法更简洁
3. 有没有参数不同情况下的方法
1⃣️无参数的方法
//对象方法
//类方法
2⃣️有参数的方法
//提取方法名
1. 去掉+-号 ;ps :(void) sayHello :(NSString *)aName
2.去掉方法的返回值去掉;ps:sayHello :(NSString *)aName
3.去掉参数类型和参数名;ps:sayHello :
4.有冒号也是方法的而一部分,有”:”后面一定有参数;
方法名:sayHello : (冒号一定要加上)
3⃣️ 多个参数的方法 withCount :(NSInteger)count; 说了多少次
//命名格式: -/+ (返回值) 方法1:(参数类型 *)参数名1 方法2 :(参数类型)参数名2 方法3 :(参数类型)参数名3 …… 方法名命名方法小驼峰 第一个字母小写 下面的每个单词首字母大写
//多个参数时候,每个参数定义完成记得加空格
//提取方法名 sayhello :withCount
三 自定义实例变量初始化方法
1. initWithColor方法实现了 实例变量初始化和实例变量赋值结合到一起
主要是 initWith后面跟的是第一个变量名的名字首字母大写
1.面试题:# inculde #import @ class作用
1.目的 为了实现高内聚,低耦合
内聚:模块内成员的关系程度
耦合:模块与模块之间的关系程度
降低耦合性 内聚性就会升高
2.为什么要进行封装?
目的是为了讲数据隐藏起来 只能用此类的方法才可以访问或修改,不能被外界任意存储数据是面对对象的设计本质,降低数据的误用型;
3.@public @protected @private 的用法
1⃣@public 公共的 谁都可以用 很危险
2⃣@protected 受保护的(默认值) 不允许在类的外部访问实例变量 但可以在子类中得内部被访问.函数中就会不可调用
①类的内部:实例变量名直接访问
②类的外部:使用方法去访问 (设置器 访问器);
③ 设置器 setter 方法
- (void ) settype: (NSString *)type; - (NSString *) type;
④访问器 getter 方法
设置 getter 方法步骤
/*
1.一定是对象方法
2.一定有返回值 返回的类型要和实例变量的类型一致
3.方法名就是实例变量名(要去掉下划线_);
*/
3⃣@private 私有的 外部不可见 只有本类中得可见,子类中也不可见;
① 内部访问:实例变量名
外访问:通过设置器和访问器
[p setCup :@"D"]; NSLog(@"%@",[p cup]);
二 方法
1. OC 中方法大体分为:类方法和对象方法
// 类方法:+加号开头 由类名来调用
// 对象方法:-减号开头 由 对象调用
//判断方法是否重名 :1. + -号;2. 方法名;
PS girl *p1 =[[girl alloc]init];
// 调用对象方法 用对象 就是新赋值的那个变量名
// [p1 sayHello];
// 调用类 用设定好的类 比如 girl 这个就是类
// [girl sayHello];
2.类方法和对象方法总结
// 对象方法
1.- 开头
2. 在对象方法中能够使用实例变量
3.对象方法只能由对象调用[对象名 方法];
// 类方法
1.+ 开头
2.在类方法中不可以使用实例变量 (类方法由类来调用,并没有给他开辟空间)
3.只能由类方法调用 [ 类名 方法];
4.使用类的好处:不依赖创造的对象 更灵活 执行效率高 能用类解决 尽量用类.
5.场合:类方法中不需要实例变量的适合,使用类方法更简洁
3. 有没有参数不同情况下的方法
1⃣️无参数的方法
//对象方法
- (void) sayHello;
//类方法
+ (void) sayHello;
2⃣️有参数的方法
//提取方法名
1. 去掉+-号 ;ps :(void) sayHello :(NSString *)aName
2.去掉方法的返回值去掉;ps:sayHello :(NSString *)aName
3.去掉参数类型和参数名;ps:sayHello :
4.有冒号也是方法的而一部分,有”:”后面一定有参数;
方法名:sayHello : (冒号一定要加上)
PS: - (void) sayHello :(NSString *)aName;//对象 + (void) sayHello :(NSString *)aName;// 类
3⃣️ 多个参数的方法 withCount :(NSInteger)count; 说了多少次
//命名格式: -/+ (返回值) 方法1:(参数类型 *)参数名1 方法2 :(参数类型)参数名2 方法3 :(参数类型)参数名3 …… 方法名命名方法小驼峰 第一个字母小写 下面的每个单词首字母大写
//多个参数时候,每个参数定义完成记得加空格
//提取方法名 sayhello :withCount
PS: - (void) sayHello :(NSString *)aName withCount :(NSInteger)count;// 对象 + (void) sayHello :(NSString *)aName withCount :(NSInteger)count;/
三 自定义实例变量初始化方法
1. initWithColor方法实现了 实例变量初始化和实例变量赋值结合到一起
- (id)initWithColor :(NSString *)color weight :(CGFloat)weight price :(CGFloat)price;
主要是 initWith后面跟的是第一个变量名的名字首字母大写
1.面试题:# inculde #import @ class作用
/* # inculde C语言中的引入头文件 和#import 一样 但是# import 能避免重复引入头文件 #import 和@ class 不同:# import 将整个文件引入,@ class 告诉编辑器 后面跟的东西是一个类,不会引入全部文件 一般情况下,@ class 和#import 配套使用 @class 在.h 中 而#import 在.m 文件中 */
相关文章推荐
- IOS--OC--Lesson 类 和对象
- IOS--C 语言 Lesson 函数的返回值
- iOS代码规范
- IOS--C 语言 Lesson 循环
- IOS--C 语言 Lesson Eight Struct
- IOS--C 语言 Lesson Seven 指针函数
- IOS--C 语言 Lesson Six 枚举 与 宏
- IOS--C 语言 Lesson Five Array 冒泡 Str
- IOS--C 语言 Lesson Four if 语句
- iOS代码规范
- IOS--C 语言 Lesson Three 内存
- IOS--C 语言 Lesson Two Print 指针
- iOS mac 终端 常用命令
- iOS开发-文件管理之多的是你不知道的事(二)
- iOS开发-文件管理之多的是你不知道的事(一)
- NSString、NSMutableString基本用法
- ios周刊第五期
- ios周刊 第四期
- iOS周刊 第三期
- iOS周刊第二期