成员变量封装 — set 和 get 方法

成员变量封装 — set 和 get 方法_第1张图片

前言:这是写给自己看的,很简单的东西

pragma mark — 01 成员变量封装
  • 创建一个Person有体重这个属性,看.h文件
  Person.h
@interface Person : NSObject

{
    //person类有成员变量体重
    int _weight;
}
//设定一个方法每天体重加1
- (void)addWeight;
//由于我们没有将这个属性设置为公有的,所以外界拿不到,我们也不想外界拿到我们的成员变量属性,我们就得给成员变量写两个方法一个给成员变量赋值的方法,一个在外界取得成员变量的方法
//赋值
- (void)assignmentWeight:(int)weight;
//取值
- (int)weight;
@end

  • Person.m
#import "Person.h"
@implementation Person
//设定一个方法每天体重加1
- (void)addWeight
{
    _weight ++;
    NSLog(@"%d",_weight);
}

//赋值
- (void)assignmentWeight:(int)weight
{
   //我们可以对外界传进来的参数进行判断,体重不能为负数
    if (weight < 0 )
    {
        weight = 0;
    }
    _weight = weight;
}

//取值
- (int)weight
{
    return _weight;
}
@end

  • 执行文件,最后打印出体重为51
#import "ViewController.h"
#import "Person.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
 Person *person1 = [[Person alloc]init];
    //外界调用赋值方法给体重赋值
    [person1 assignmentWeight:50];
  [person1 addWeight];
    //用取值方法取值
    NSLog(@"%d",[person1 weight]);
}
@end

pragma — mark - set 和 get
  • 成员变量的set和get方法
比如对 int _size 写出其set和get 方法
方法声明:
/*
 setter方法:
 作用: 设置成员变量的值
 格式:
 1. setter方法一定是对象方法
 2. 一定没有返回值
 3. 一定以set开头, 并且set后面跟上需要设置的成员变量的名称去掉下划线, 并且首字母大写
 4. 一定有参数, 参数类型一定和需要设置的成员变量的类型一致, 并且参数名称就是成员变量的名称去掉下划线
*/
- (void)setSize:(int)size;

/*
 getter方法:
 作用: 获取成员变量的值
 格式:
 1. getter方法一定是对象方法
 2.一定有返回值, 而且返回值一定和获取的成员变量的类型一致
 3.方法名称就是获取的成员变量的名称去掉下划线
 4. 一定没有参数
 */
- (int)size;

方法实现:
- (void)setSize:(int)size;
{
    
     //成员变量以下划线开头的好处,就是可以区分局部变量和成员变量
     
    _size = size;
}

- (int)size
{
    return _size;
}

你可能感兴趣的:(成员变量封装 — set 和 get 方法)