黑马程序员_OC封装
来源:互联网 发布:网络小额贷款公司牌照 编辑:程序博客网 时间:2024/05/17 03:22
<封装1_set方法>
一、set方法
1.set方法的使用场合:
@public的成员变量可以被随意赋值,应该使用set方法来管理成员的访问
(类似机场的安检、岁龙头过滤;过滤掉不合理的东西),比如僵尸的生命值不能为负值。
2.set方法的作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值。
3.set方法的命名规范:
* 方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写。
* 形参名称不要跟成员变量同名。
二、封装set方法代码示例:
@interface Student : NSObject{// @public 成员变量尽量不要用@publicint age;}/* set方法: 1.作用:提供一个方法给外界设置成员变量的值,可以在方法里面对参数进行相应过滤。 2.命名规范:* 方法名必须以set开头* set后面跟上成员变量的名称,成员变量的首字母必须大写* 返回值一定是void* 一定要接收一个参数,而且参数类型跟成员变量类型一致* 形参的名称不能跟成员变量名一样 */- (void)setAge: (int)newAge;- (void)study;@end@implementation Student// set方法的实现- (void)setAge: (int)newAge{// 对传进来的参数进行过滤if (newAge <= 0){newAge = 1;}age = newAge;}- (void)study{NSLog (@"%d岁的学生在学习", age);}@endint main(){Student *stu = [Student new];// stu->age = 20;[stu setAge: 10];[stu study];return 0;}
<封装2_get方法>
一、get方法
1.get方法的使用场合:
@public的成员变量可以被随意赋值,应该使用get方法来管理成员的访问
(类似机场的安检、岁龙头过滤;过滤掉不合理的东西),比如僵尸的生命值不能为负值。
2.get方法的作用:返回对象内部的成员变量。
3.get方法的命名规范:get方法的名称一般就跟成员变量同名。
二、成员变量的命名规范
* 成员变量都以下划线_开头
* 可以跟get方法的名称区分开
* 可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量。
三、封装get方法代码示例:
@interface Student : NSObject{// @public 成员变量尽量不要用@publicint age;}/* set方法: 1.作用:提供一个方法给外界设置成员变量的值,可以在方法里面对参数进行相应过滤。 2.命名规范:* 方法名必须以set开头* set后面跟上成员变量的名称,成员变量的首字母必须大写* 返回值一定是void* 一定要接收一个参数,而且参数类型跟成员变量类型一致* 形参的名称不能跟成员变量名一样 */- (void)setAge: (int)newAge;/* get方法: 1.作用:返回对象内部的成员变量。 2.命名规范:* 肯定有返回值:返回值类型肯定与成员变量的类型一致* 方法名跟成员变量名一样* 不需要接受任何参数 */- (int)age;- (void)study;@end@implementation Student// get方法的实现- (int)age{return age;}// set方法的实现- (void)setAge: (int)newAge{// 对传进来的参数进行过滤if (newAge <= 0){newAge = 1;}age = newAge;}- (void)study{NSLog (@"%d岁的学生在学习", age);}@endint main(){Student *stu = [Student new];// stu->age = 20;[stu setAge: 10];// NSLog (@"学生的年龄是%d岁", stu-age); // age成员变量是被保护的,无法直接访问NSLog (@"学生的年龄是%d岁", [stu age]);return 0;}
<封装3_成员变量的命名规范>
成员变量的命名规范:一定要以下划线(_)开头
作用:
1.让成员变量和get方法的名称区分开。
2.可以跟局部变量区分开,一看到下划线开头的变量,一般都是成员变量。
#import <Foundation/Foundation.h>typedef enum {SexMan,SexWoman} Sex;@interface Student : NSObject{// 成员变量的命名规范:一定要以下划线(_)开头int _no;Sex _sex;}// sex的set和get方法- (void)setSex: (Sex)sex;- (Sex)sex;// no的set和get方法- (void)setNo: (int)no;- (int)no;@end@implementation Student- (void)setNo: (int)no{_no = no;}- (int)no{return _no;}- (void)setSex: (Sex)sex{_sex = sex;}- (Sex)sex{return _sex;}@endint main(){Student *stu = [Student new];[stu setSex: SexMan];[stu setNo: 10];[stu sex];[stu no];return 0;}
0 0
- 黑马程序员_OC封装
- 黑马程序员_OC继承封装多态
- 黑马程序员_OC学习之封装,继承,多态
- 黑马程序员_OC学习之封装、继承、多态、组合
- 黑马程序员_OC协议
- 黑马程序员_OC语法
- 黑马程序员_OC基础06_OC语法
- 黑马程序员_OC中的selector
- 黑马程序员_OC中的self
- 黑马程序员_OC点语法
- 黑马程序员_OC构造方法
- 黑马程序员_OC内存管理
- 黑马程序员_OC关键字学习
- 黑马程序员_OC内存管理
- 黑马程序员_OC特有语法
- 黑马程序员_OC内存管理
- 黑马程序员_OC语言之面向对象的三大特性(封装、继承、多态)
- 黑马基程序员学习笔记_OC之三大特性之封装
- pulsar 进一步了解
- unable to execute dex: multiple dex files Cocos2dxAccelerometer
- 【C语言复习(七)】编译过程的简介
- sql server和my sql 命令(语句)的区别,sql server与mysql的比较
- 【1】--《30天自制操作系统》读书笔记--0~3天
- 黑马程序员_OC封装
- Java Thread&Concurrency(7): 深入理解Callable/Future(FutureTask)接口及其实现
- 【新手教程】如何向App Store提交应用
- USB OTG插入检测识别
- Android电池管理
- main返回值不为int
- MyBATIS使用CRUD
- 应用程序的闪屏效果的制作
- 核雕保养最实用的4个小技巧