黑马程序员_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
原创粉丝点击