OC--點操做&setter和getter

#import <Foundation/Foundation.h>
-------------------------------------------------.h
@interface Dog : NSObject
{
    NSInteger _age;
    NSInteger _height;
}

 /*
 點操做和setter和getter 
 1.setter
  - 返回值 是void 函數名 必須以set 開頭 set後面的單詞必須首字母大寫
  參數 只能有一個
  假設 - setAge: 那麼 咱們就能夠直接這樣使用 
  dog.age = 1; .後面 age 就是 set後面的單詞(首字母變小寫)
  
  
  2.getter
  - 必需要有返回值類型 無參數的
 
  例如  - (NSInteger)age ;
  
  NSInteger a = dog.age;  這裏的.age就是getter .後面就是getter的方法名
 
  
 */

- (void)setAge:(NSInteger)age;
- (NSInteger)age;

- (void)setHeight:(NSInteger)height;
- (NSInteger)height;


- (int)xxx;

@end
---------------------------------.m
#import "Dog.h"

@implementation Dog
- (void)setAge:(NSInteger)age {
    _age = age;
}
- (NSInteger)age {
    return _age;
}

- (void)setHeight:(NSInteger)height {
    _height = height;
}
- (NSInteger)height {
    return _height;
}
- (int)xxx {
    return 1000;
}
@end
------------------------------
#import <Foundation/Foundation.h>
#import "Dog.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Dog *dog = [[Dog alloc] init];
        //[dog setAge:1];
        
        // 點操做 是和 setter和getter 是有關係的
       
        dog.age = 1;//等價於[dog setAge:1];
        
        
        NSInteger newAge = dog.age;//等價於 [dog  age];
        
        //獲取值得 .age表示就是 getter方法
        //賦值的時候 .age setter方法
        // = 左側就是 setter方法 右側 getter方法
        
        NSLog(@"newAge:%ld",newAge);
        //只要setter和getter方法 就可使用點 操做
        
        
        //- (int)xxx; 也可使用點 這就是一個getter
        NSLog(@"%d",dog.xxx);
        
        
    }
    return 0;
}
相關文章
相關標籤/搜索