Objective-C学习笔记(二十四)——成员变量的访问修饰符学习

来源:互联网 发布:java中两个list拼接 编辑:程序博客网 时间:2024/05/16 19:02

       在OC中有四类访问修饰符,分别为@public,@protected,@private,@package,不同的访问修饰符对外界有不同的可见性。现在我们来一一讲解。我们以新建MyClass类。

(一)@public:公有:在类内和类外都可以被使用,且可以被继承;

(1)在MyClass.h中声明一个公有的成员变量。

{    @public    int _classInt;}
(2)在MyClass.m中写一个方法,打印这个成员变量的值,表示可以在类内可以访问:

-(void)show{    NSLog(@"className = %d",_classInt);//这里我并没有创建成员变量,只创建了属性,成员变量是默认生成的;}

(3)在main.m中对该成员变量进行赋值,表示可以在类外进行访问。注意:此时不能使用 . 点运算符,需要使用-> 指向运算符。

MyClass *myclass = [[MyClass alloc]init];        myclass->_classInt = 24;//使用指向运算符来调用类中公有的成员变量;        [myclass show];

(4)输出结果,结果符合我们的预期,表示用@public修饰的公有成员变量可以在类内类外都可以访问。

.


(二)@protected:受保护的:在类内可以使用,在类外不能使用,并且可以被继承;这个是默认的类型。在类外通过点运算符和指向运算符都不能访问。

(三)@private :私有的:在类内可以使用,在类外不能使用,并且不能被继承。

(四)@package:框架权限:在框架内相当于受保护,在框架外相当于私有。


注意:OC中的方法是没有访问修饰符的。方法是可以被外界调用的,如果不想被外界调用,可以删除声明即可,这样就对外界不可见了。


github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

3 0