您的位置:首页 > 编程语言 > C语言/C++

OC语言关于类和对象的初步认识

2014-08-04 22:45 253 查看
一.实例变量的可见度:一共有三种(@public,@protected以及@private)

1.他们之间的区别:

@public:在任何文件中都可以访问,(访问方式是通过对象 +指向操作符+实例变量,例如:per->name)

@protected:受保护的,有一定的访问权限,只允许在本类文件以及子类文件中访问,其他文件不可以访问.

@private:私有的,只允许在本类文件中访问,不可以在子类文件以及其他文件中访问

2.其中系统默认的可见度为@protected,为什么不是@public和@private呢?其原因如下:

为什么不声明为@public?

1.声明@public的实例变量,外部就可以访问和修改,会影响内部的一个实现,暴露实现细节

2.违背了OC面向对象三大特性之一----封装.(封装的思想是影藏内部实现,提供外接访问的借口)

为什么不声明为@private?

1.声明为@pravate的实例变量,子类文件访问不到,所以子类文件还需要重新定义声明

2.违背了OC面向对象特性之一-----继承.(父类有的东西,子类也有,可访问)

二.设置器和访问器

1.设置器和访问器又称为setter方法和getter方法;

2.setter方法的特点:

(1)他们都以减号方法开始;

(2)返回值都为空;

(3)只有一个参数.
三.循环导入问题
1.产生原因:

#import头文件时,会将头文件的内容复制一份,而当使用被导入的这个类时,该类还未定义,所以识别不了,典型的循环导入问题.
2.解决方案:

使用该类时不能把它当做一个类来使用,所以在.h文件中使用@class+要被导入的类名;将要被导入的类名命名为一个字符串再使用,但是它不具备类中的内容,所以需要在.m文件中#import
"要被导入的类名.h"导入头文件
四.类的嵌套使用
自我感觉类的嵌套使用就是一个类中的对象的类型是另一个类,然后把另一个类的类名当作类型名来使用,就和普通的NNString等变量的用法一样,然后普通对象那样进行操作即可.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: