點語法

person.h

#import

@interface Person : NSObject

{
    int _age;
    NSString *_name;
}

- (void)setAge:(int)age;
- (int)age;
- (void)setName:(NSString *)name;
- (NSString *)name;

@end

person.m

#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


main函數

#import

#import "Person.h"

int main(int argc, const char * argv[])
{
    Person *p = [Person new];

    // 點語法的本質還是方法調用,set方法調用

    p.age = 10; // [p setAge:10];  

    // 調用get方法,
    // 區分是set方法還是get方法的是前面有沒有賦值
    // 即有沒有“p.age = 10 中的“= 10 “
    int a = p.age; // [p age];

    p.name = @"Jack";

    NSString *s = p.name;
  
    NSLog(@"%@", s);
 
    return 0;
}


發佈了59 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章