OC 中关键字的作用域

来源:互联网 发布:网站运营数据分析 编辑:程序博客网 时间:2024/06/06 22:59

一.@public的作用域

      public,字面上得意思是公开的,公众的.其实用在oc中大致也是这样的一个意思.那么oc中到底怎么来描述@public呢.@public在oc中表示在任何地方都能通过对象直接访问.用一个指向式子来说明吧,就是"对象名->属性名".怎么用代码来表示大致的使用呢,我们来看看吧.

     

    上图可以看出@public的书写位置,一般都是写在属性的声明部分

    

    上图就是运用@public后,要访问属性的方式,注意要访问的时候要看清楚属性是否有其他的关键字修饰作用域,会导致练@public也不能访问.

二.@protected的作用域

    @protected我们可以理出,是受保护的意思,但是在oc里面呢,它到底是个什么意思呢?意思是:只能在本类和子类中直接访问,在外部访问需要定义set和get方法访问,否则是不允许的.注意:访问的时候也要注意看要访问的对象是否受到其它关键字保护,否则就是超出了访问范围.先看看代码吧.

   

   

  

   上面三种是定义和用set方法访问的方法.

三.@private的作用域

    @private,顾名思义是在本类中直接访问.子类与外部都不允许.如果真的想要访问,只能通过get和set方法访问.

     

   上图是有关@private作用域的定义,下图是set和get方法的赋值和获取值的方式

    

    我们可以通过给_high赋值取访问.

四.@package的作用域

    @package表示能在Foundation/Foundation.h的框架中访问,但是权限介于@public和protected之间,这里我就不附上图了,可以说只要在框架之内,作用和@public很像,但是又由条件限制,所以用得时候还是要注意范围.

五.最后给大家总结一下和附上一点小知识

   为什么我们在外界访问会有一个范围呢?这里主要是由权限修饰符控制的,也就是上面说的那些,当然,我说的可能只是以小部分.还有的就得大家伙自己总结了.接下来我给大家附上上面修饰的范围吧.

   

   大家可以看看我给大家总结的大致的范围和他们之间的大小关系.最后说一下如果定义的时候什么控制的作用域都不写,那么又是怎么个理解的方法.

   

  好了,这就是我给大家分享的小知识,希望能帮到人吧,没有帮到,你们也就当做无聊的时候看下吧.

0 0
原创粉丝点击