- 文章学习整理自文顶顶博客园
-
目录
- 面向对象的三大特征:封装(成员变量)、继承、多态
- 在OC语言中,使用@interface 和 @implementation 来处理类。
- @interface 暴露给外界提供展示以及接口
- @implementation 将具体的实现封装起来
一、面向对象--封装(成员变量)
1、set方法
(1) 开发过程中,考虑带安全性,我们一般不在成员变量名前面使用@public、@protected等关键字修饰,而是使用set方法来为对象提供成员变量的值。
在set方法的内部也可以对一些不合理的赋值进行筛选过滤。
(2)set方法的作用:为外界提供一个设置成员变量的方法
(3)命名规范:
1、方法名必须以set开头
2、set后面跟上成员变量的名称,首字母大写
3、返回值一定是void
4、一定要接受一个参数,而且参数类型需要和成员变量的类型一致
5、形参名不能和成员变量一样(苹果官方推荐成员变量名前加"_"以示区分)
(4)set方法的好处
1、不让数据暴露在外,保证了数据的安全性
2、对设置的数据进行过滤
// set方法的声明
#import <Foundation/foundation.h>
@interface Person:NSObject {
int _age;
}
-(void)setAge:(int)age;
-(void)print;
@end
// set方法的实现
#import <Foundation/Foundation.h>
@implementation Person
-(void)setAge:(int)age {
_age = age;
}
-(void)print{
NSLog(@"age = %d",_age),
}
@end
2、Get方法
(1)Get方法的作用:为调用者返回对象内部的成员变量
(2)命名规范:
1、一定有返回值,返回值的类型和成员变量的类型一致
2、方法名和成员变量一样
3、不需要接受任何参数
// Get方法的声明
#import <Foundation/Foundation.h>
@interface Person:NSObject
{
NSString *_name;
}
-(void)setName:(NSString *)name;
-(NSString *)name;
@end
//Get方法的实现
-(void)setName:(NSString *)name {
_name = name;
}
-(NSString *)name {
return _name;
}