黑马程序员——Object-C基础(五)面向对象的特性:封装
来源:互联网 发布:js div滚动条触发事件 编辑:程序博客网 时间:2024/04/28 23:10
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
封装、继承与多态是面向对象编程中的三大重要特性
1. set方法和get方法的使用场合
@public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检、水龙头过滤,过滤掉不合理的东西)。
2. set方法
1) 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值
2) 命名规范:
3) 方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写
4) 形参名称不要跟成员变量同名
3. get方法
1) 作用:返回对象内部的成员变量
2) 命名规范:get方法的名称一般就跟成员变量同名
4. 成员变量的命名规范
1) 成员变量都以下划线 _ 开头
2) 可以跟get方法的名称区分开
3) 可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量
5. 代码示例
#import <Foundation/Foundation.h>// 声明@interface Car: NSObject{ int _wheels; //轮子个数}/*set方法*/- (void)setWheels:(int)wheels;/*get方法*/- (int)wheels;@end @implementation Car//set方法的实现- (void)setWheels:(int)wheels{ // 对外面传进来的轮子数进行过滤 if (wheels<=0) { wheels = 1; } _wheels = wheels;} //get方法的实现- (int)wheels{ return _wheels;}@end
6. 封装的好处
- 过滤不合理的值
- 屏蔽内部的赋值过程
- 让外界不必关注内部的细节
7. 封装练习代码:
/* 4.设计一个成绩类 * C语言成绩(可读可写) * OC成绩(可读可写) * 总分(只读) * 平均分(只读)*/#import <Foundation/Foundation.h>@interface Score : NSObject{ int _cScore; // C语言成绩 int _ocScore; // OC成绩 int _totalScore;// 总分 int _averageScoe; // 平均分}- (void)setCScore:(int)cScore;- (int)cScore;- (void)setOcScore:(int)ocScore;- (int)ocScore;- (int)totalScore;- (int)averageScore;@end@implementation Score- (void)setCScore:(int)cScore{ _cScore = cScore; // 计算总分 _totalScore = _cScore + _ocScore; _averageScoe = _totalScore/2;}- (int)cScore{ return _cScore;}- (void)setOcScore:(int)ocScore{ _ocScore = ocScore; // 计算总分 _totalScore = _cScore + _ocScore; _averageScoe = _totalScore/2;}// 监听成员变量的改变- (int)ocScore{ return _ocScore;}- (int)totalScore{ return _totalScore;}- (int)averageScore{ return _averageScoe;}@endint main(){ Score *s = [Score new]; [s setCScore:90]; [s setOcScore:100]; [s setCScore:80]; int a = [s totalScore]; NSLog(@"总分:%d", a); return 0;}
0 0
- 黑马程序员——Object-C基础(五)面向对象的特性:封装
- 黑马程序员——Object-C基础(六)面向对象的特性:继承
- 黑马程序员——Object-C基础(七)面向对象的特性:多态
- 黑马程序员——OC语言基础——面向对象三大特性之封装
- 黑马程序员——java基础----面向对象(一)思想和封装特性
- 黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态
- 黑马程序员--Object-C 对象的特性
- 黑马程序员--IOS基础--Objective C学习--面向对象特性之--封装
- 黑马程序员——ios基础---Objective-C:对象特性、面向对象
- 黑马程序员——Object-C基础(二)什么是面向对象?
- 黑马程序员———面向对象的特性之封装
- 黑马程序员——OC—OC中面向对象的特性之封装
- 黑马程序员——JAVA面向对象的特性:封装,继承,多态
- 黑马程序员—java面向对象总结(2)—面向对象封装特性
- 黑马程序员-----面向对象的特性封装、继承、多态、抽象
- 黑马程序员——Object-C的基础学习——语言特性
- 黑马程序员——Object-C基础(八)Object-C常见特性
- 黑马程序员_面向对象—>封装
- php文件上传类,支持产生文件缩略图
- Big Endian 和 Little Endian
- Qt 3D的研究(十):描边渲染(轮廓渲染)以及Silhouette Shader
- 【笔记3】获取csi文件,并用MATLAB处理
- 解决VS2008无法打开预编译头Debug\XXX.pch,请重启VS的提示
- 黑马程序员——Object-C基础(五)面向对象的特性:封装
- 10-使用windows7自带的刻录软件刻录光盘
- hdu 1253 胜利大逃亡
- 参照网上修改后的插入算法
- 安卓横竖屏切换问题总结
- Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本
- DevExpress VCL 2014.1.2 for C++BUILDER XE6
- Mysql二进制安装
- Windows消息机制总结