O-C相关05:方法的封装.

48 篇文章 0 订阅
43 篇文章 0 订阅


      前言:在 OC 中进行封装, 就是实现设置实例变量和获取实例变量数据的方法, 常常称为 setter 方法和 getter 方法. 或称为 get set 读写器.

 1,setter 方法

 

setter 方法又叫设置器, 是为实例变量对外提供的统一访问规则, 用于设置实例变量的值. 一般在开发中, 禁止将实例变量直接暴露到外面. 通过 setter 方法可以为赋值操作进行必要的控制与筛选. 起到了封装和控制的作用.

 

规则:

1)方法名必须以 set 开头, 然后跟上实例变量的名字(无下划线)

2)使用骆驼命名规则

3) 接收一个参数, 用于为实例变量初始化

4)返回 void 类型

5)setter 是实例方法

 

2,getter 方法

 

getter 方法又叫读取器, 是用来在外访问成员变量的统一方法.

 

规则:

1)getter 返回与相关成员变量一致的类型数据

2)getter 没有参数

3)getter 方法的名字需要与实例变量名同名(无下划线)

3.附上一个小例子:公有三个文件:main.m    person.h       person.m:

main.m

//  stter,getter应用

//

//  Created by wanghy on 15/8/3.

//  Copyright (c) 2015 wanghy. All rights reserved.

//



#import <Foundation/Foundation.h>

#import "person.h"

int main(int argc, const char * argv[]) {

 @autoreleasepool {

     

     person * p = [[person alloc] init];

     

     

     [p setName: @"张三"];

     [p setAge:13 ];

     [p setGender:@""];

     

     NSLog(@"\n%@\n%@\n%d",[p name],[p gender],[p age]);

    

    }


}


//  person.h

//  my first_objective-c_program

//

//  Created by wanghy on 15/8/3.

//  Copyright (c) 2015 wanghy. All rights reserved.

//


#import <Foundation/Foundation.h>



//定义一个 person

@interface person : NSObject

{

    @private

    NSString * _name;

    int _age;

    NSString * _gender;

}


//封装属性:  设置各个属性的setter方法。

-(void)setName:(NSString * )name;

-(void)setAge:(int )age;

-(void)setGender:(NSString * )gender;


//封装输出:设置get方法

-(NSString *)name;

-(int)age;

-(NSString *)gender;



@end



//  person.m

//  my first_objective-c_program

//

//  Created by wanghy on 15/8/3.

//  Copyright (c) 2015 wanghy. All rights reserved.

//


#import "person.h"


//1.实现姓名,性别,年龄的封装

@implementation person

-(void)setName:(NSString * )name

{

    _name = name;

}


//2.年龄 当人的年龄大于等于18岁时才能输入年龄。否则为空。

-(void)setAge:(int )age

{

    if (age>=18) {

        _age = age ;

    }

    

}

//3.性别 如果输入的不是男人或者女人就无法输入进去。值为空,用 if 判断。

-(void)setGender:(NSString * )gender

{

    if ([gender isEqualToString:@""] || [gender isEqualToString:@""]) {

        _gender =gender;

    }

    

}

//定义实例变量的封装。

-(NSString *)name

{

    return _name ;

    

    }

-(int )age

{ return _age ;

    

}

-(NSString * )gender

{

    return _gender;

}

@end


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个IT大叔的内心独白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值