Person.h
- #import <Foundation/Foundation.h>
- @interface Person : NSObject
- {
- //@protected //成员变量默认的作用域为protected
- int _age;
- }
- - (void)setAge:(int)age;
- - (int)age;
- @end
复制代码
Person.m
- #import "Person.h"
- @implementation Person
- - (void)setAge:(int)age
- {
- if(age > 0) //封装的set方法可以过滤一些不合理的值
- {
- _age = age;
- }
- }
- - (int)age
- {
- return _age;
- }
- @end
复制代码
main.m
- /*
- 封装:将成员变量的访问封装成set方法和get方法
- 好处:
- * 将类的数据与实现分离,隐藏实现细节
- * 能在封装的代码中过滤一些不合理的值
- */
- #import <Foundation/Foundation.h>
- #import "Person.h"
- int main(int argc, const char * argv[])
- {
- Person *p = [Person new];
-
- [p setAge:10]; //要通过封装的set方法来访问成员变量
- //NSLog(@"_age = %d" , p->_age); //类的成员变量默认作用域为protected,只能在类或子类中直接访问,不能在类外直接访问
- NSLog(@"_age = %d" , [p age]);
-
- [p setAge:-1]; //不合理的年龄值-1将被过滤掉
-
- NSLog(@"_age = %d" , [p age]);
-
- return 0;
- }
复制代码
|
|