黑马程序员——OC语言基础——面向对象三大特性之封装

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

今天回顾的内容是OC面向对象思想的三大特性之一,封装。

由于之前学习过Java的原因,所以对面向对象的封装这个特性算是比较了解了。

封装就是对类(或者说是对象)的一些属性进行保护,使属性不会随意被外界所更改,以此保证系统的稳定健壮和安全。属于一种访问权限的限制。

在Java中常用的访问权限修饰符有Public、Protected和Private三种,以这种访问权限的限制来控制,哪些属性或是方法是可以开放给外界使用的,而哪些是需要收到保护而不对外界开放的。这就是我所理解的封装。

以下是一段进行了封装的OC类的代码:

#import <Foundation/Foundation.h>

@interface Host : NSObject
{
    //类的属性
    int _version;    //主机版本
    NSString *_code; //主机序列号
    int _type;       //主机类型
    int _chNum;      //主机通道数
    
}
//getter & setter
-(void)setVersion:(int)version;
-(int)getVersion;

-(void)setCode:(NSString *)code;
-(NSString *)Code;

-(void)setType:(int)type;
-(int)Type;

-(void)setChNum:(int)chNum;
-(int)ChNum;
//类的方法
-(void)startup;     //启动
-(void)shutdown;    //关机
-(void)reboot;      //重启
-(void)show;        //显示主机信息
@end

这个类大概描述了一个主机的四个属性,需要注意的是在声明这个类的属性时并没有声明访问权限,这种情况下将使用默认访问权限Protected(受保护的)。

在这种情况下,外界无法直接对属性进行操作,而必须通过我们对外发布的setter和getter来间接操作。

而在这些setter和getter中,我们就可以依据程序的具体实现,来具体分析需要对该项属性做哪些验证处理,以保证程序的健壮性。


需要说明的是,出于某些特殊需求,或是特殊应用场景的考虑下。

我们需要在类中声明某些方法,但不想让外界看到甚至调用。这个时候我们应该怎么办呢?

这个时候我们就需要用到OC中的私有化这块的知识了,若是出现上述的需求。我们只需要在类的实现(.m文件)中去实现该方法或属性即可。

像这样在类的实现中定义的方法和属性外界是不可见的。这样我们就定义了私有变量和私有方法。


以上就是我对OC中面向对象三大特性之一——封装的一些个人理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值