OC中的面向对象三大特性之
一、 封装
1、封装具体一点说就是对成员变量的封装,为了防止我们的成员变量被误操作,所以尽量不把成员变量设为public,而是通过set方法向外界提供一个接口,间接地更改类中的属性。通过set我们可以限制传入的值,是我们的代码更安全。
使用set方法要遵守一些规范,例如:
(1) 方法名必须以set开头;
(2) set后面直接加上成员变量名,并且第一个字母要大写,比如下面例子中的setAge方法;
(3) 返回值一定是void
(4) 一定要接收一个参数,参数类型和成员变量类型一致;
(5) 形参的名称不能跟成员变量名一样。
#import <Foundation/Foundation.h>
@interface Student:NSObject
{
@public
int _age;
}
//提供一个方法给外界设置age属性值
- (void)setAge
int)newAge;
- (void)study;
@end
@implementation Student
//set方法的实现
- (void)setAge
int)newAge
{
if(newAge <= 0)//对传进来的参数进行过滤
{
newAge = 1;
}
_age = Age;
}
- (void)study
{
NSLog(@"%d岁的学生在学习",age);
}
@end
int main()
{
Student *stu = [Student new];
//stu->age = 20;
[stu setAge:10];
[stdu study];
return 0;
}
2、通过get方法获取属性的值,同样需要遵守相应的规范:
(1)一定有返回值,与获取属性类型一致;
(2)方法名与成员变量名一致;
(3)不接收参数。
#import <Foundation/Foundation.h>
@interface Student:NSObject
{
@public
int _age;
}
- (vlid)age;
@end
@implementation Student
- (int)age
{
return age;
}
@end
int main()
{
[str age];
return 0;
}
一、 封装
1、封装具体一点说就是对成员变量的封装,为了防止我们的成员变量被误操作,所以尽量不把成员变量设为public,而是通过set方法向外界提供一个接口,间接地更改类中的属性。通过set我们可以限制传入的值,是我们的代码更安全。
使用set方法要遵守一些规范,例如:
(1) 方法名必须以set开头;
(2) set后面直接加上成员变量名,并且第一个字母要大写,比如下面例子中的setAge方法;
(3) 返回值一定是void
(4) 一定要接收一个参数,参数类型和成员变量类型一致;
(5) 形参的名称不能跟成员变量名一样。
#import <Foundation/Foundation.h>
@interface Student:NSObject
{
@public
int _age;
}
//提供一个方法给外界设置age属性值
- (void)setAge

- (void)study;
@end
@implementation Student
//set方法的实现
- (void)setAge

{
if(newAge <= 0)//对传进来的参数进行过滤
{
newAge = 1;
}
_age = Age;
}
- (void)study
{
NSLog(@"%d岁的学生在学习",age);
}
@end
int main()
{
Student *stu = [Student new];
//stu->age = 20;
[stu setAge:10];
[stdu study];
return 0;
}
2、通过get方法获取属性的值,同样需要遵守相应的规范:
(1)一定有返回值,与获取属性类型一致;
(2)方法名与成员变量名一致;
(3)不接收参数。
#import <Foundation/Foundation.h>
@interface Student:NSObject
{
@public
int _age;
}
- (vlid)age;
@end
@implementation Student
- (int)age
{
return age;
}
@end
int main()
{
[str age];
return 0;
}