您的位置:首页 > 其它

OC三大特性之一:封装的介绍

2015-11-04 22:41 323 查看
一、封装

学习过Java中类的同学可能都知道了,封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符:public,default,protected,private,访问权限一次递减的,这样我们在定义类的时候,哪些字段和方法不想暴露出去,哪些字段和方法可以暴露,可以通过修饰符来完成,这就是封装,下面来看一个例子吧:

Car.h

[objc] view
plaincopy





//  Car.h  

//  05_ObjectDemo  

//  

//  Created by jiangwei on 14-10-11.  

//  Copyright (c) 2014年 jiangwei. All rights reserved.  

//  

  

#import <Foundation/Foundation.h>  

  

@interface Car : NSObject{  

    //这个属性就是对外进行保密的相当于private,所以我们需要在外部访问的话,必须定义get/set方法  

    //默认的是private的,但是我们可以使用@public设置为public属性的,那么在外部可以直接访问:person->capcity = 2.8;  

    //当然我们一般不这么使用,因为这会破坏封装性,这种用法相当于C中的结构体中权限  

    //一共四种:@public,@protected,@private,@package,这个和Java中是相同的  

@public  

    float _capcity; //油量属性  

}  

  

- (void)run:(float)t;  

  

@end  

这里我们可以看到,OC中也是有四种访问权限修饰符:

@public、@protected、@private、@package

其中默认的修饰符是@private

但是这里要注意的是:OC中的方法是没有修饰符的概念的,这个和Java有很大的区别,一般都是公开访问的,即public的,但是我们怎么做到让OC中的一个方法不能被外界访问呢?

OC中是这么做的,如果想让一个方法不被外界访问的话,只需要在.m文件中实现这个方法,不要在头文件中进行定义,说白了就是:该方法有实现,没定义,这样外界在导入头文件的时候,是没有这个方法的,但是这个方法我们可以在自己的.m文件中进行使用。

为什么要介绍这点知识呢?因为在后面我们会说到单利模式,到时候就会用到这个知识点了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: