黑马程序员技术交流社区

标题: 7.20总结之点语法 [打印本页]

作者: zhuiyi007    时间: 2014-7-21 10:51
标题: 7.20总结之点语法
//
//  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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2