实体变量的可见度与类(小组成员:胡鹏飞 张西辉 孙晓萌 王振波)


1.实例变量的可见度:一共有三种

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

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

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

    默认的可见度是:@protected

    为什么不声明为@public?

    (1).声明为:@public 实例变量,外部可以访问以及修改,会影响到内部的一个实现,暴漏实现细节

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

    为什么不声明为@private?

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

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

2.设置器 setter方法 与访问器 getter方法  的运用

3.文件和类的关系:文件和类没有直接关系,文件可以存放多个类,只要类符合接口部分和实现部分的定义格式就可以.但一般情况下,一个文件就定义一个类.

4.self的使用:谁调用该方法,self就代表谁.

    当方法是一个 - 号方法时,调用该方法的对象是谁,self就代表当前对象

  当方法是一个 + 号方法时,调用该方法的类是谁,self就代表当前类

5. + 方法中不能使用实例变量,实例变量是依托于对象存在的,只有有了对象,实例变量才会有空间.

6.循环导入问题:当导入头文件时,相当于把里面东西都复制一份,而当使用这个类时,这个类还没定义,因此,不能识别.

  解决方案:在.h文件中使用@class,将类声明为一个字符串,但是它不具备类中的内容,因此,需要在.m文件中再将头文件导入即可.








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值