- 不要等到明天,明天太遥远,今天就行动。
须读:看完该文章你能做什么?
什么是getter setter方法
学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)
适合所有人,不需要懂的什么
注:(小白直接上手)
一、本章笔记
为什么成员变量要使用 _
这里就出现 为什么我们之前声明的成员变量要以 _ 开头
要不然 这里
size = size; 系统怎么知道那个 size 是 程序员传递进来的形参,那个是类里面的成员变量
setter方法 :
作用 : 设置成员变量的值
写法 :
1.setter 方法 一定是对象方法
2.一定没有返回值
3.一定以set开头,并且set后面跟上需要设置的成员变量的名称 去掉下划线,并且首字母大写
4.一定有参数, 参数类型 一定和需要设置的成员变量的类型 一致,并且参数的名称就是成员的名称 去掉下划线
- (void)setSize:(int)size;
gettet方法 :
作用 : 获取成员变量的值
写法:
1.getter方法 一定是对象方法
2.一定有返回值, 而且返回值 一定 和获取的成员变量的类型一致
3.方法名称 就是获取的成员变量的名称 去掉下划线即可
- (int)size;
二、code
main.m
>>>main.m
#pragma mark 02-getter-setter方法
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark - main函数
int main(int argc, const char * argv[])
{
return 0;
}
Gun
>>>.h
#import <Foundation/Foundation.h>
@interface Gun : NSObject
{
/*
由于 将来我们经常需要定义一些方法 操作成员变量,而每个方法都必须有一个有意义的名称,而且想名字非常难,所以一就有了getter/ setter 方法
getter 和 setter方法 它的格式 和写法 都是固定的,所有只要有 getter - setter方法,
我们就不用煞费心思的去想方法名称了,解决我们起名字难的问题
并且 getter - setter 方法 还是程序员之间的一种规范, 以后别人只要想 给属性赋值 立刻就会想到getter - setter方法,这样降低了 程序员之间的沟通成本
*/
int _bullet; // 子弹
int _size; // 尺寸
NSString *_model; // 型号
int color; // 颜色
double _weight; // 重量
}
- (void)shoot;
// 提供一个方法用于设置成员变量的值
- (void)addBullet:(int)count;
// 提供一个方法 用于 返回成员变量的值
- (int)getBullet;
#pragma mark getter - setter方法 的声明
/*
setter方法 :
作用 : 设置成员变量的值
写法 :
1.setter 方法 一定是对象方法
2.一定没有返回值
3.一定以set开头,并且set后面跟上需要设置的成员变量的名称 去掉下划线,并且首字母大写
4.一定有参数, 参数类型 一定和需要设置的成员变量的类型 一致,并且参数的名称就是成员的名称 去掉下划线
*/
- (void)setSize:(int)size;
/*
gettet方法 :
作用 : 获取成员变量的值
写法:
1.getter方法 一定是对象方法
2.一定有返回值, 而且返回值 一定 和获取的成员变量的类型一致
3.方法名称 就是获取的成员变量的名称 去掉下划线即可
*/
- (int)size;
@end
>>>.m
#import "Gun.h"
@implementation Gun
- (void)shoot
{
if(_bullet > 0)
{
_bullet--;
NSLog(@"打了一枪,还剩%i子弹",_bullet);
}
else
{
NSLog(@"没有子弹");
}
}
- (void)addBullet:(int)count
{
if (count < 0) {
count = 0;
}
_bullet = count;
}
- (int)getBullet
{
return _bullet;
}
#pragma mark getter - setter方法 的实现
- (void)setSize:(int)size
{
/*
这里就出现 为什么我们之前声明的成员变量要以 _ 开头
要不然 这里
size = size; 系统怎么知道那个 size 是 程序员传递进来的形参,那个是类里面的成员变量
*/
// 成员变量以 下划线开头的好处, 就是可以用于区分 局部变量 和 成员变量
// 此处的 size 是局部变量 , _size 是成员变量
_size = size;
}
- (int)size
{
return _size;
}
@end