首页 > 代码库 > 点语法的应用

点语法的应用

Main.m

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[])
{

    //创建person对象
    Person *person = [[Person alloc] init];
    
    //设置值
//    [person setName:@"tom"];
//    [person setAge:23];

    /*
     点语法调用了是set或者get方法,并且只能调用这两种方法
     */
    
    //set等价的点语法
    person.name = @"tom";   //等价[person setName:@"tom"]; 也就是调用了name的set方法
    person.age = 23;    //调用了age的set方法
    
    
    //访问器
//    NSString *name = [person name];
    NSString *name = person.name;   //调用了name的get方法
//    NSInteger age = [person age];
    NSInteger age = person.age;
    
    NSLog(@"name:%@  age:%ld",name,age);
    
    //调用showInfo
//    NSString *str = [person showInfo];
    //当成了showInfo的get方法
    NSString *str = person.showInfo;    //等价于 NSString *str = [person showInfo];
    NSLog(@"%@",str);
    
    //如果只是生命没有定,调用会报错,因为找不到响应的实现方法,错误提示:-[Person showTask]: unrecognized selector sent to instance
    
//    [person showTask];  错误
    
    return 0;
}

Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject {

    NSString *_name;    //名字
    NSInteger _age;     //年龄
    
}

//设置器
- (void)setName:(NSString *)name;
- (void)setAge:(NSInteger)age;

//访问器
- (NSString *)name;
- (NSInteger)age;

//打印个人信息
- (NSString *)showInfo;


- (void)showTask;

Person.m

//设置器
- (void)setName:(NSString *)name {

    _name = name;
    
}

- (void)setAge:(NSInteger)age {

    _age = age;
}

//访问器
- (NSString *)name {

    return _name;
}

- (NSInteger)age {

    return _age;
}

//打印个人信息
- (NSString *)showInfo {

    return @"个人信息";
    
}

- (void)showtask {

    NSLog(@"showTask");
    
}


点语法的应用