类的 成员变量 默认是 受保护的。

Person* xiaoming = [Person new]
xiaoming->name;  // 这样会报错说 name 是保护权限的。

我们需要利用 getter 方法获得参数。
赋值也可以利用 setter 方法

@interface Person : NSObject{
    char * _name;
    int _age;
}

// 声明。get方法。
- (int)age;
// setter 方法 默认为 void 返回类型
// 对应  void setAge(int age)
- (void)setAge:(int)age;

@end

@implementation Person

- (int)age{
    return _age;
}

- (void)setAge:(int)age{
    _age = age;
}
@end

set 和 get 方法都有一个格式要求

也可以利用 @property 关键字进行快速声明 setter getter 方法。

.h 头文件中声明

// 使用property 后,可以不用在 .h 文件中 @interface 声明属性
@peoperty NSString* name;
@peoperty NSInteger age;

@synthesize age;  // 不需要声明属性的类型。

%@ 打印 NSString* 类型

多参数构造

方法一

这样的方法很难进行一个修改。

// .h 文件
- (void) setNameAndAge: (NSString*) name: (NSINteger) age;
// .m 文件
- (void) setNameAndAge:(NSString*) name: (NSInteger)age{
	_name = name;
	_age = age;
}

'''
//.h 文件
- (void) setName:(NSString*)name age:(NSInteger)age;
//.m 文件
- (void) setName:(NSSteing*)name age:(NSInteger)age{
	_name = name;
	_age = age;
}

// main.m 
Student* s1 = [Student new];
[s1 setName:@"0xc4m3l" age:21];
'''

description 在 NSObject 类

重写 description