——黑马程序员——OC中数据的封装
来源:互联网 发布:误清空回收站恢复软件 编辑:程序博客网 时间:2024/06/05 08:10
-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
OC中数据的封装
一、封装的概念
封装:类的属性暴露在外不安全,为了防止修改将数据和操作的可能性,对外界只提供一个接口
OC中数据不封装的缺点:当一个类把自己的属性暴露给外部的时候,那么该类就失去了对属性的管理权
封装的原理:实例变量默认的只能被当前类的对象方法访问
二、封装的实现步骤
在OC中数据封装又称设置实例变量的方法和访问实例变量的方法,也称setter方法和getter方法,
set方法的作用:
1、不让数据暴露在外面,保证了数据的安全性
2、在set方法内部可以对一些不合理的赋值进行筛选
命名规范:
1、set方法必须以set开头,set方法是一个对象方法
2、set后面跟去掉下划线的实例变量名称,首字母大写
3、set方法返回值一定是void
4.、一定要有一个参数,而且参数类型要和成员变量类型一致
5、形参名不能和实例变量名一样,形参名一般是去掉 下划线的成员变量名
get方法的作用:
命名规范:
1、get方法一定是一个对象方法,
2、get方法一定有返回值,返回值的类型和实例变量的类型要相同
3、get方法的方法名是去掉下划线的实例变量名
4、get方法一定没有参数
5、get方法实现中,一定是返回实例变量的值
例如:
对set、get方法的声明
@interface Person: NSObject
{
//姓名
NSString *_name;
//年龄
int _age;
//性别
NSString *_sex;
//身高
flaot _height;
}
//===========set方法的声明===========
-(void) setName:(NSString *) name;
//int _age
-(void) setAge: (int) age;
//NSString *_sex
-(void) setSex: (NSString *) sex;
// float _height
-(void) setHeight: (float) height;
//此后如果对成员变量设置值的时候都用此方法
//===========get方法的声明===========
-(NSString *) name;
-(int ) age;
-(NSString * ) sex;
-(float) height;
@end
//此后如果对成员变量获取值的时候都用此方法
对set、get方法的实现
@implementation Person
//*************set方法的实现**************
-(void) setName:(NSString *) name{
//用形参 name 给实例变量 _name 赋值
_name = name;
}
//int _age
-(void) setAge: (int) age{
_age = age;
}
//NSString *_sex
-(void) setSex: (NSString *) sex{
_sex = sex;
}
// float _height
-(void) setHeight: (float) height{
_height = height;
}
//*************get方法的实现**************
-(NSString *) name{
return _name;
}
-(int ) age{
return _age;
}
-(NSString * ) sex{
return _sex;
}
-(float) height{
return _height;
}
@end
三、应用的代码实现
#import <Foundation/Foundation.h>@interface Person: NSObject{//姓名NSString *_name;//年龄int _age;//性别NSString *_sex;//身高float _height;}//===========set方法的声明===========-(void) setName:(NSString *) name;//int _age-(void) setAge: (int) age;//NSString *_sex-(void) setSex: (NSString *) sex;// float _height-(void) setHeight: (float) height;//此后如果对成员变量设置值的时候都用此方法//===========get方法的声明===========-(NSString *) name;-(int) age;-(NSString *) sex;-(float) height;@end//此后如果对成员变量获取值的时候都用此方法//对set、get方法的实现@implementation Person//*************set方法的实现**************-(void) setName:(NSString *) name{//用形参 name 给实例变量 _name 赋值_name = name;}//int _age-(void) setAge: (int) age{_age = age;}//NSString *_sex-(void) setSex: (NSString *) sex{_sex = sex;}// float _height-(void) setHeight: (float) height{_height = height;}//*************get方法的实现**************-(NSString *) name{return _name;}-(int ) age{return _age;}-(NSString * ) sex{return _sex;}-(float) height{return _height;}@endint main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //创建一个对象 Person *p = [Person new]; //给对象成员变量_name赋值 [p setName: @"张三"]; //给_age赋值 [p setAge: 10 ]; //给_sex赋值 [p setSex: @"男"]; //给_height赋值 [p setHeight: 1.5f]; //打印出值 NSLog(@"%@ %d %@ %f", [p name], [p age], [p sex], [p height] ); [pool drain]; return 0;}
- ——黑马程序员——OC中数据的封装
- 黑马程序员——OC—OC中面向对象的特性之封装
- 黑马程序员——OC中的封装
- 黑马程序员 — OC (封装)
- 黑马程序员—OC基础--对象的属性封装
- 黑马程序员——OC三大特性之封装
- 黑马程序员——OC三大特性-5:封装
- 黑马程序员——ios学习笔记 OC 封装&多态
- 4、黑马程序员-OC面向对象—封装
- 【黑马程序员】-oc中对象的封装
- 黑马程序员——OC中字典的用法总结
- 黑马程序员--OC面向对象的三大特征——封装、继承、多态
- 黑马程序员——OC的三大特性:封装,继承,多态
- 黑马程序员——OC的三大特性:封装、继承、多态
- 黑马程序员—IOS基础之OC—类的三大特性封装、继承、多态
- 黑马程序员——OC的封装、继承和多态
- 黑马程序员——OC语言基础---封装的概念及原理
- 黑马程序员——OC基础---简单的OC程序
- 二叉树的四种遍历
- Android 手势&触摸事件
- 笔记-计算机网络-传输层作用
- Java 8 的新特性和改进总览
- Java:volatile 关键字的一点理解
- ——黑马程序员——OC中数据的封装
- 用顺序队列实现的舞会舞伴选择问题
- 高可用可伸缩架构实用经验谈
- 记忆方法(一)概述
- Java环境变量配置
- 命令行乱码处理
- hdu 3501 欧拉函数
- JAVA自定义序列化的神奇方法
- ASP.NET权限管理系统(FrameWork) 1.0.7