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

这篇博客详细介绍了Objective-C中的四种访问修饰符:@public、@protected、@private和@package,分别阐述了它们的可见性和使用场景。@public允许在类内外访问和继承,@protected限制为类内及子类,@private仅限类内,@package则根据框架权限调整可见性。同时提到OC方法默认可被外界调用,不希望被调用时可删除声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在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  。欢迎大家访问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值