OC2
来源:互联网 发布:模拟考试软件 编辑:程序博客网 时间:2024/06/06 15:38
1.封装的目的:就是为了达到高内聚低耦合
内聚:模块各部分之间的关联程度
耦合:就是模块与模块之间的关联程度
内聚和耦合有一个条件改变必然导致另一个条件改变(耦合低了,内聚必然增高)(eg:甲乙两座城市的例子)
2.
@public 实例变量可见度修饰的修饰是变量的范围:从书写的哪一行开始到下一个修饰符结束,或者碰到大括号就结束
@protected 被保护的,被protected修饰的实例变量,只能在类的内部直接访问,和子类中直接访问;直接就是通过实例变量名类访问
@private 私有的。被private修饰的实例变量只能在类的内部直接访问,子类中也不可以访问
被protected修饰的实例变量不能在类的外部访问,这时需要给这些实例变量添加赋值的方法
总结 可见度修饰符 类的内部 子类
public 可以直接访问 可以直接访问
protected 可以直接访问 可以直接访问
private 可以直接访问 不可以直接访问
系统默认的实例变量可见度修饰符:@protected
@public修饰的实例变量虽然可以再类的内部和外部直接访问,但是他破坏了类的封装思想,所有以后(祥哥)建议不要使用
3.设置器set方法
设置器的书写格式:
a.对象方法 以 - 号开头
b.返回值类型一定是void
c.方法名一定以set开头,后面跟上实例变量去掉下划线,并且首字母大写
d.一定有参数,并且参数类型和实例变量的类型要保持一致,参数名就是实例变量去掉下划线
age的set方法
NSInteger_age;
- (void)setAge:(NSInteger)age;
访问器 get方法
访问器的书写格式:
a.对象方法 以 - 号开头
b.一定有返回值,且返回值的类型要和实例变量的类型保持一致
c.方法名是实例变量去掉下划线
age的get方法
NSInteger_age;
- (NSInteger)age;
4.oc里的方法分为两种方法,对象方法 和 类方法
提取方法名的格式
a.无返无参去掉方法类型 (- +)
b.去掉返回值类型
方法名 sayHello
- (void)sayHello;
+ (void)sayHello;
有一个参数的对象方法和类方法
提取方法名
a.去掉方法类型 (- +)
b.去掉返回值类型
c.去掉参数类型和参数名
冒号是方法名的一部分不能省略
方法名 sayHi:
- (void)sayHi:(NSString*)name;
+ (void)sayHi:(NSString*)name;
+ (void)sayHi:(NSString*)name;
多个参数的时候,参数和参数名之间要加一个空格
有几个冒号代表这个方法有几个参数
runCicle : withCount :
-(void)runCircle:(NSString*)road withCount:(NSInteger)count;
+ (void)runCircle:(NSString*)road withCount:(NSInteger)count;
+ (void)runCircle:(NSString*)road withCount:(NSInteger)count;
5.
stu.name= @"尹君";//等价于==[stu setName:@"尹君"]
NSString *name = stu.name;//等价于==[stu.name]
点语法后面有赋值运算符(=)的时候调用的是实例变量的set方法
点语法后面没有赋值运算符(=)的时候调用的是实例变量的get方法
点语法只是系统提供一种快速调用set和get方法的快捷方式,只有写了实例变量的set和get方法才能使用点语法
6.类方法的好处和使用场合:不依赖与对象,执行效率高,能使用类方法解决的问题尽量使用类方法
7.自定义方法
好处:把初始化和对实例变量的赋值结合到一起
8.@class告诉编译器class后面的字符串是一个类,这时不会引入类的头文件,使用@class的好处可以防止重复引入头文件
#import ”Man“可以引入头文件,并且头文件之被引入一次
#include ”“这是c语言引入头文件的方法,他不会防止重复引用
0 0
- oc2
- oc2
- OC2
- OC2
- 初学OC2
- OC2-1
- 结合 category 工作原理分析 OC2.0 中的 runtime
- 结合 category 工作原理分析 OC2.0 中的 runtime
- LevelDb日知录之八:Compaction
- oracle用户名以及口令忘记了咋办?
- UVALive 6907Body Building(暴力)
- LeetCode 11 - Container With Most Water
- is not in the sudoers file 解决
- OC2
- java并发编程学习之一段简单代码证明synchronized锁的是对象
- ListView "Cannot add header view to list -- setAdapter has already been called."
- SSL 1344 Knights 最大匹配
- java实现简单的单链表结构
- 61.简单实用iCarousel(第三方类库)和毛玻璃效果
- c++ vector
- LevelDb日知录 之九: levelDb中的Cache
- C-枚举