OC学习_第二天 实例变量可⻅度、⽅法

来源:互联网 发布:mac相册照片怎么导出 编辑:程序博客网 时间:2024/06/05 02:06

1.实例变量可见度



2.为什么不使⽤@public?

 1、使⽤@public关键字,暴露了类内部的细节。

 2、不符合⾯向对象语⾔的三⼤特性之⼀ — 封装


3.OC中的⽅法分两种:

类⽅法和实例⽅法。

类⽅法:只能类使⽤,例如:+(id)alloc 注:类⽅法中不能使⽤实例变量

实例⽅法:只能对象使⽤,例如: -(void)sayHi


4.方法名

 首先把方法名删掉再删除返回值类型还删除参数类型及参数名删完就是这个方法的方法名

  注意: ": "表示有参数不能删除有":"必有参数






5   setter 和 getter

在OC⾥,为实例变量赋值的⽅法称作setter (设置器)。

读取实例变量值的⽅法称作getter(访问器)

⽆论setter还是getter内部操作的是实例变量

每⼀个实例变量都需要⼀对setter和getter⽅法。

OC⾥规定了setter和getter的书写格式:

如果⼀个实例变量是int age;或者int _age;

setter的书写格式如下:- (void)setAge:(int)age;即set+⾸字⺟⼤写的实例变量名(忽略下划线)。

getter的书写格式如下: - (int)age;即返回值类型与变量类型⼀致,⽅法名与实例变量名相同(忽略下划线)

6   是否需要导入头文件:

6.1  导⼊头⽂件,即:导⼊头⽂件中的内容到当前类。

#import “”导⼊⾃定义类,

#import <>导⼊类库中的头⽂件。

功能类似C语⾔中的#include,但是可以避免头⽂件被重复导⼊。

容易出现循环导⼊头⽂件问题。

6.2  使用向前声明能够有效避免嵌套循环导⼊:

      告诉编译器@class后的字符串作为类名使⽤,并未导⼊类的接⼝内容。

7  自定义初始化方法:





8 小结:

实例变量有3种常⻅的可⻅度:@public、@protected、@private。

@public违背了封装特性,⾯向对象开发中很少使⽤;

@protected默认可⻅度,⾃⼰和⼦类中能使⽤—>访问实例变量;

@private⾃⼰类中能使⽤—>访问实例变量。

⽅法是OC的核⼼,采⽤消息机制:[receiver message]。

“-”message由对象来调⽤;

“+”message由类来调⽤。

0 0