属性的赋值的限制 setter/getter方法(判断传入的额数据是否符合逻辑处理,否则做默认处理)
来源:互联网 发布:我们不一样知乎 编辑:程序博客网 时间:2024/06/05 11:26
属性的封装
再为对象的属性,赋值的时候,做一个逻辑验证,如果为属性赋的值再这个逻辑范围之内,那么我们就吧这个赋值给属性,否则我们就做做处理。
就想对人类的——age赋值,是否在0-200,否则就会做默认处理,
如何对这个属性给一个限制
如何实现:降属性的这public 去掉,一旦写@public就意味可以直接访问对象的这个属性,外界一旦可以直接访问这个属性,那么外界就可以任意的为这个属性赋值
去掉这个@public 外界无法直接访问这个属性,也就无法赋值了
为类提供一个方法,这个方法为属性赋值,这个方法我们叫做setter
这个方法对象方法,因为要为这个属性赋值,
这个方法没有返回值,因为这个方法做的事情,仅仅是为属性赋值就可以了
这个方法的名称必须为set开头跟上首字母大写的属性(规范)
这个方法一定是有参数的,参数的类型和属性的类型一致,参数的名称和属性额名称一致
在这个方法的实现之中,判断传入的额数据是否符合逻辑处理,否则做默认处理
外界想要为对象的属性赋值,那么就要调用这个对象的setter方法,将要赋值的这个数据传入这个方法,方法会对数据尽享验证,看是否符合要求,如果不符合就是默认的。。。。
getter这个方法是一个对象方法,因为这个方法做的事情是拿到属性的返回值
这个方法是有返回值返回值的类型和属性的类型一直
这个方法的名称是属性名称就是属性的名称
z方法是没有参数
实现是直接讲属性的返回
这个时候,如果外界希望得到这个属性的值,那么就只需要调用这个getter方法就可以了
如下
Person.h中
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
NSString *_name;
int _age;
}
//方法的声明
-(void)setAge:(int)age;
-(void)sayHi;
-(void)age;
@end
#import "Person.h"
@implementation Person
-(void)sayHi
{
NSLog(@"我叫%@,我的年龄是%d",_name,_age);
}
-(void)setAge:(int)age
{
// 这个地方给判断 对其加上限制
if (age >=0 && age<=200) {
_age = age;
}else{
_age =18;
}
}
-(void)age
{
return_age;
}
@end
main函数如下
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc,constchar * argv[]) {
@autoreleasepool {
Person *p1 = [Personnew];
[p1 setAge:56123];
NSLog(@"%@",p1);
// p1->_age = 1999;
// NSLog(@"%@",[p1 age]);
}
return0;
}
超过了给的限制就会给一个默认值处理
setter/getter方法后面会再加,最近吧知识点都过一遍,整理的有点粗糙
- 属性的赋值的限制 setter/getter方法(判断传入的额数据是否符合逻辑处理,否则做默认处理)
- scala属性的getter和setter方法
- property属性的setter、getter方法
- #118 – Don’t Add Code to Dependency Property Getter/Setter(不要在依赖属性的Getter/Setter中加入处理代码)
- Java利用PropertyDescriptor获取属性的 getter/setter 方法
- JavaScript对象中属性的getter和setter方法
- Java利用PropertyDescriptor获取属性的 getter/setter 方法
- 通过PropertyDescriptor反射获取属性的 getter/setter 方法
- JavaScript对象中属性的getter和setter方法
- 【js对象属性的getter和setter】
- js对象属性的getter和setter
- JavaScript对象属性的getter和setter
- Getter / Setter 的滥用
- ES5的getter/setter
- Socket类的getter和setter方法
- Struts2的getter()和setter()方法
- Socket类的getter和setter方法
- 生成getter与setter的方法
- DBMS_FGA包使用介绍
- Oracle移动数据文件命令
- 转载]oracle归档日志管理
- ORA-00600: 内部错误代码, 参数: […
- Oracle中DUMP转储方法 收藏
- 属性的赋值的限制 setter/getter方法(判断传入的额数据是否符合逻辑处理,否则做默认处理)
- 解决ORA-08102: index key not fou…
- 查看SQL执行计划的方法
- 2.Java手动输入10个数字,并对它们进行 奇偶数分类、平均値计算、求和操作。
- Cenos下中文输入法
- PL/SQL Developer使用技巧(转)
- 当前日志文件全部损坏和丢失的恢复
- ORA-00376: 此时无法读取文件问题…
- 定义新的类型数据