Object-C代码练习【类别】
博客专区 > TomatosX 的博客 > 博客详情
Object-C代码练习【类别】
TomatosX 发表于3年前
Object-C代码练习【类别】
  • 发表于 3年前
  • 阅读 20
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 这里将类别的声明和头文件的声明放在了一个文件中
//
//  main.m
//  类别
//
//  Created by on 14-10-6.
//  Copyright (c) 2014年 apple. All rights reserved.
//

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *person = [Person personWithName:@"jack"];
        [person eat];
        [person sleep];
        [person play];
        NSLog(@"Person's name is: %@", [person name]);
    }
    return 0;
}
//
//  Person.h
//  类别
//
//  Created by on 14-10-6.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    NSString *name;
    int age;
}

- (void) test;
- (NSString *) name;
- (int) age;

@end

@interface Person (Creation)

+ (id) personWithName:(NSString *)_name;
+ (id) personWithName:(NSString *)_name withAge:(int)_age;

- (id) initWithName:(NSString *)_name;
- (id) initWithName:(NSString *)_name withAge:(int)_age;

@end

@interface Person (Life)

- (void) eat;
- (void) sleep;
- (void) play;

@end
//
//  Person.m
//  类别
//
//  Created by on 14-10-6.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import "Person.h"

@implementation Person

- (void) test {
    NSLog(@"Person本类的方法");
} // test

- (NSString *) name {
    return name;
} // getName

- (int) age {
    return age;
} // getAge

@end

@implementation Person (Creation)

+ (id) personWithName:(NSString *)_name {
    Person *person = [[Person alloc] init];
    person->name = _name;
    return person;
} // personWithName

+ (id) personWithName:(NSString *)_name withAge:(int)_age {
    Person *person = [[Person alloc] init];
    person -> name = _name;
    person -> age = _age;
    return person;
} // personWithName:withAge:

- (id) initWithName:(NSString *)_name {
    if (self = [super init]) {
        name = _name;
    }
    return self;
} // initWithName

- (id) initWithName:(NSString *)_name withAge:(int)_age {
    if (self = [super init]) {
        name = _name;
        age = _age;
    }
    return self;
} // initWithName:withAge:

@end

@implementation Person (Life)

- (void) eat {
    NSLog(@"正在吃饭");
} // eat

- (void) sleep {
    NSLog(@"正在睡觉");
} // sleep

- (void) play {
    NSLog(@"正在玩耍");
} // play

@end
共有 人打赏支持
粉丝 22
博文 143
码字总数 119547
×
TomatosX
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: