前言:这是写给自己看的,很简单的东西
pragma mark — 01 成员变量封装
Person.h
@interface Person : NSObject
{
//person类有成员变量体重
int _weight;
}
//设定一个方法每天体重加1
- (void)addWeight;
//由于我们没有将这个属性设置为公有的,所以外界拿不到,我们也不想外界拿到我们的成员变量属性,我们就得给成员变量写两个方法一个给成员变量赋值的方法,一个在外界取得成员变量的方法
//赋值
- (void)assignmentWeight:(int)weight;
//取值
- (int)weight;
@end
#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
#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
比如对 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;
}