//
// main.m
// 04-点语法
//
// Created by apple on 13-8-7.
// Copyright (c) 2013年 itcast. All rights reserved.
//
// 点语法只是用于getter和setter
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
Person *p = [Person new];
// 点语法的本质还是方法调用
// [p setAge:10];这条语句用点语法书写的话就是以下形式
// 点语法并不是直接访问成员变量,而是调用对象的方法
p.age = 10;
// [p age];点语法是根据语句是否有返回值和是否赋值来判断展开成get方法还是set方法
int a = p.age;
p.name = @"Jack";
NSString *s = p.name;
NSLog(@"%@", s);
return 0;
}
//
// Person.h
// 04-点语法
//
// Created by apple on 13-8-7.
// Copyright (c) 2013年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;
NSString *_name;
}
- (void)setAge:(int)age;
- (int)age;
- (void)setName:(NSString *)name;
- (NSString *)name;
@end
//
// Person.m
// 04-点语法
//
// Created by apple on 13-8-7.
// Copyright (c) 2013年 itcast. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)setAge:(int)age
{
//_age = age;
NSLog(@"setAge:");
// 会引发死循环
//self.age = age; // [self setAge:age];
}
- (int)age
{
NSLog(@"age");
return _age;
// 会引发死循环
//return self.age;// [self age];
}
- (void)setName:(NSString *)name
{
_name = name;
}
- (NSString *)name
{
return _name;
}
@end
|
|