黑马程序员——OC语言基础---封装的概念及原理
来源:互联网 发布:阿里云 dns服务器地址 编辑:程序博客网 时间:2024/05/24 06:47
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
封装的概念及原理
面向对象的特性之一:封装(OC最小的封装体就是函数)
1、封装
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
2、封装的好处:
将变化隔离。(不管里面怎么变,使用者不需要知道)
便于使用。(使用者只需按照一定的方法使用就可以了)
提高重用性。(任何人都可以对已封装好的功能进行操作)
提高安全性。(由于暴露给使用者的只是一些外在的操作环节,而不是里面本质的东西,所以就提高了对他的维护性,也就是安全性)
3、封装的原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
4、为什么要进行封装?
不封装的缺点: 当一个类把自己的属性暴露给外部的时候,那么该类就失去对属性的管理权
将数据隐藏起来,只能用此类的方法函数才可以访问或者设置数据,不可被外部任意存储是面向对象设计本质。降低了数据被无用的可能性!
在OC语言中,使用@interface和@implementation来处理类。
@interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。
@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来。
5、封装的原理?
实例变量默认只能被当前类的对象方法访问。
#import <Foundation/Foundation.h>@interface Gun : NSObject{ @public int _bulletCount;}-(void)shoot;-(void)setBulletCount:(int)bulletCount;@end@implementation Gun-(void)shoot{ if(_bulletCount>0){ _bulletCount--; NSLog(@"\ntututu ... 剩余子弹:%d",_bulletCount); }else{ NSLog(@"没有子弹"); }}-(void)setBulletCount:(int)bulletCount{ if (bulletCount>0) { _bulletCount = bulletCount; }else{ _bulletCount = 0; }}@endint main(int argc, const char * argv[]) { @autoreleasepool { Gun *gun= [Gun new]; gun->_bulletCount = -3; [gun shoot]; [gun shoot]; [gun shoot]; [gun shoot]; [gun shoot]; } return 0;}
0 0
- 黑马程序员——OC语言基础---封装的概念及原理
- 黑马程序员-OC语言-封装的概念及原理(听课笔记)
- 黑马程序员—OC基础--对象的属性封装
- 黑马程序员——OC语言基础——面向对象三大特性之封装
- 黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态
- 黑马程序员——c语言基础之文件的概念及操作
- 黑马程序员——C语言基础---预处理的概念及分类
- 黑马程序员——OC语言加强---copy概念及入门
- 黑马程序员-OC语言-封装
- 黑马程序员****OC语言基础****Block概念和理解
- 黑马程序员****OC语言基础****protocol概念和理解
- 黑马程序员—OC语言基础—基础语法知识
- 黑马程序员—IOS基础之OC—类的三大特性封装、继承、多态
- 黑马程序员——OC语言日志——多态的概念和实现
- 黑马程序员——OC语言——protocol(协议)的概念及其使用
- 黑马程序员——OC语言基础---description方法介绍及重写
- 黑马程序员——OC语言基础---@property关键字介绍及使用
- 黑马程序员——OC语言基础---id类型及应用场景
- Python实现Linux环境下的ls命令
- 对象——原型属性
- Convolutional Networks(要点)
- jquery实现图片轮换
- CSS选择器的阅读方式
- 黑马程序员——OC语言基础---封装的概念及原理
- PagerSlidingTabStrip+ViewPager
- java className失败的原因
- Ubuntu下如何找回 /var/log/messages
- 初学Kruskal——Prime
- iOS 使用MJRefresh刷新
- java基础
- springmvc 集成apache cxf 开发webservice 示例
- Servlet