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.一定有参数,并且参数类型和实例变量的类型要保持一致,参数名就是实例变量去掉下划线
ageset方法
NSInteger_age;
- (void)setAge:(NSInteger)age;
访问器  get方法
访问器的书写格式:
a.对象方法  以 - 号开头
b.一定有返回值,且返回值的类型要和实例变量的类型保持一致
c.方法名是实例变量去掉下划线
 ageget方法
 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;

多个参数的时候,参数和参数名之间要加一个空格
有几个冒号代表这个方法有几个参数
runCicle : withCount :
-(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
原创粉丝点击