实例变量创建:
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3333ff;">// Car.h
#import <Foundation/Foundation.h></span>
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3333ff;">@interface Car : NSObject{
// 实例变量
NSString *carName; NSString *carType;
}
// setter
- (void)setCarName:(NSString *)newCarName;
// getter
- (NSString *)carName;
// setter
- (void)setCarType:(NSString *)newCarType;
// getter
- (NSString *)carType;
@end </span>
上⾯面的代码中carName和carType就是Car的实例变量,并且可以看到分别对这两个实例变量声明了get/set⽅方法,即存取器。
存取器(accessor):指⽤用于获取和设置实例变量的⽅方法。⽤用于获取实例变量值的存取器是getter,⽤用于设置实例变量值的存取器是setter。
实例变量实现:
<pre name="code" class="objc"><span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;">#import "Car.h"</span>
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;">@implementation Car
// setter
- (void)setCarName:(NSString *)newCarName{
carName = newCarName;}
// getter
- (NSString *)carName{
return carName;}
// setter
- (void)setCarType:(NSString *)newCarType{
carType = newCarType;}
// getter
- (NSString *)carType{
return carType;}</span>
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;">@end</span>
上⾯面代码是对实例变量存取器的实现。我们可以看到,存取器就是对实例变量进⾏行赋值和取值。按照约定赋值⽅方法以set开头,取值⽅方法以实例变量名命名。我们看看如何使⽤用:
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;">// main.m</span>
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;">#import "Car.h"
int main(int argc, char * argv[]){
@autoreleasepool {
Car *car = [[Car alloc] init];
[car setCarName:@"Jeep Cherokee"]; </span>
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;"> [car setCarType:@"SUV"];
NSLog(@"The car name is %@ and the type is %@",[car carName],[car carType]); </span>
<span style="font-family:KaiTi_GB2312;font-size:14px;color:#3366ff;"> }
return 0;}</span>
上⾯面的代码中我们注意到,对象Car使⽤用了消息语法,也就是使⽤用⽅方括号的语法给存取器发送消息。 返回结果为:
The car name is Jeep Cherokee and the type is SUV