第四天-点语法(掌握)

//
//  main.m
//  09-点语法(掌握)
//
//  Created by Apple on 14/11/21.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "CZPerson.h"
int main(int argc, const char * argv[]) {
 
    CZPerson *person = [CZPerson new];
    
//    [person setName:@"小花花"];
//    [person setAge:10];
//    int age = [person age];
//    NSLog(@"%d",age);
    
//  什么是点语法,通过.号形式访问getter 和 setter方法
    
    person.age = 20;
//  当点语法用在=的左边就是调用setter方法
//    [person setAge:20];
//当点语法用在=的右边就是调用getter方法
    int age = person.age;
    [person age];
    NSLog(@"%d",age);
    
// 注意点:
/*
    1、点语法实质就是调用getter 和setter 方法
    2、它不是直接访问成员变量
   
    点语法优点:简化编程,点语法会显得更加简洁
 */
    
    return 0;
}

//
//  CZPerson.h
//  1121-知识点的回顾
//
//  Created by Apple on 14/11/21.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface CZPerson : NSObject
{
    int _age;//年龄
    NSString * _name;//姓名
}

- (void) setAge:(int) age;

- (int) age;

- (void) setName:(NSString *) name;

- (NSString *) name;


@end

//
//  CZPerson.m
//  1121-知识点的回顾
//
//  Created by Apple on 14/11/21.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "CZPerson.h"

@implementation CZPerson

- (void) setAge:(int) age
{
    NSLog(@"setAge:");
    
//  这里是通过self调用setAge方法,此处就会出现死循环
//  一定不要再setter方法中使用点语法给成员变量赋值
//    self.age = age;
    
    _age = age;
}

- (int) age
{
    NSLog(@"age");
    
//  一定不要再getter方法中使用点语法返回成员变量的值,因为会出现死循环
    return self.age;
//    return _age;
}

- (void) setName:(NSString *) name
{
    _name = name;
}

- (NSString *) name
{
    return _name;
}

@end


你可能感兴趣的:(第四天-点语法(掌握))