返回介绍

实现

发布于 2025-04-26 18:09:33 字数 1517 浏览 0 评论 0 收藏

下面是 Book 类的实现:

#import "Book.h" // 引入接口声明



@implementation Book

@synthesize title, author; // 自动生成 getter/setter 方法



- (id) init
{
    self = [super init];
    if (self) {
        // 在这里写初始化代码


    }

    return self;
}

- (id) initWithTitle: (NSString *)aTitle{

    self = [super init];
    if (self) {
        title = [aTitle copy];
    }

    return self;
}

+ (id) createBookWithTitle:(NSString *)aTitle {
    Book *book = [[[self alloc] initWithTitle:aTitle] autorelease];
    return book;
}
+ (id) createBookWithTitle:(NSString *)aTitle andAuthor:(NSString
    *)anAuthor {
    Book *book = [[[self alloc] initWithTitle:aTitle] autorelease];
    [book setAuthor:anAuthor];
    // 或者可以使用点号语法


    // book.author = anAuthor;
    return book;
}

- (void) dealloc
{
    [title release];
    [author release];
    [super dealloc];
}

@end

实现部分中所有的方法必须在 @implementation 和 @end 标记之间。

@synthesize 会生成需要的 getter/setter 方法。

init 方法先调用父类的 init 方法[super init],以便可以初始化,然后返回一个实例。if 语句检查 self 是否是一个有效的实例。

你一定想知道 id 是什么?id 允许创建一个松散的弱类型变量,变量的类型在运行时才能决定。尽管 id 没有星号,但它代表一个指向对象的指针,因此不能把它当作一个基本类型来使用,如 int、float、double 或 char。

例如,这是一个正确的代码:

NSObject *obj = [Book createBookWithTitle:@"A Brave New World"];

而像这样子就不对了:

int i = [Book createBookWithTitle:@"A Brave New World"];

在 Objective-C 中,释放一个对象时使用 release 或 autorelease 方法。内存管理有一整套规则,简而言之,你创建或分配的对象都要在调用完成后使用 release 来释放。使用 autorelease 创建的方法会通知系统,Book 对象应该在不久的将来被销毁。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。