您的位置:首页 > 移动开发 > Objective-C

Objective-C 2.0 with Cocoa Foundation --- (类的声明和定义 1)

2011-08-31 10:06 411 查看
上一章我们写了一个非常简单的Obejctive-C下面的Hello, World!的小程序,并且对里面出现的一些新的概念进行了解释。这一章,我们将要深入到objecsive-C的一个基本的要素,也就是类的声明和定义。通过本章的学习,同学们应该可以定义类,给类加上变量,还有通过方法访问类的变量。不过准确的说,变量和方法的名词在objecsive-C里面并不是最准确的称呼,我们暂时引用Java的定义,稍后我们将统一我们的用语定义。

  3.1,本章的程序的执行结果。

  我们将构筑一个类,类的名字叫做Cattle,也就是牛的意思,今年是牛年而且我还想给在股市奋战的同学们一个好的名字,所以我们暂时把这个类叫做牛类。

  我们在main里面初始化这个牛类,然后调用这个类的方法设定类的变量,最后调用这个类的一个方法,在屏幕上输出,最终输出的结果如下图3-1所示



  图3-1,牛类的输出结果

  不过为了熟悉编辑环境以及代码,笔者强烈建议同学们按照下面的步骤自己输入。

  3.2,实现步骤

  第一步,按照我们在第二章所述的方法,新建一个项目,项目的名字叫做03-Hello Class。当然,你也可以起一个别的更好听的名字,比如说Hello Cattle等等,这个并不妨碍我们的讲解。如果你是第一次看本系列文章,请到这里参看第二章的内容。

  第二步,把鼠标移动到左侧的窗口的“Source”目录,然后单击鼠标右键,选择“Add”,然后界面上会出来一个子菜单,在子菜单里面选择“New File...” 。如图3-2所示:



  图片看不清楚?请点击这里查看原图(大图)。 

  图3-2,新建文件

  第三步,在新建文件对话框的左侧选择“Cocoa Touch Classes”,然后在右侧窗口选择“NSobjecs subclass”,然后单击“Next”。如图3-3所示:



  图片看不清楚?请点击这里查看原图(大图)。 

  第四步,在“New File”对话框里面的“File Name”栏内输入“Cattle.m”。注意,在确省状态下,Xcode为你加上了“.m”的后缀,这个也是编译器识别objecsive-C源文件的方法,没有特殊理由请不要修改这个后缀,否则会让编译器感到不舒服。另外请确认文件名字输入栏的下方有一个“Also create "Cattel.h"”选择框,请保持这个选择框为选择的状态。如图3-4所示。



#import

@interface Cattle : NSobjecs {

    int legsCount;

}

- (void)saySomething;

- (void)setLegsCount:(int) count;

@end

  为什么legs

  Cattle者,牛也;legs者,股也。不过牛股里面的牛正确的英文说法应该是Bull,请大家不要着急,我们会在类的继承里面命名一个Bull类的。

  第六步,在项目浏览器里面选择“Cattle.m”文件,把文件改为如下代码并且保存:

#import "Cattle.h"

@implementation Cattle

-(void) saySomething

{

     NSLog(@"Hello, I am a cattle, I have %d legs.", legsCount);

}

-(void) setLegsCount:(int) count

{

     legsCount = count;

}

@end

  第七步,在项目浏览器里面选择“03-Hello Class.m” 文件,把文件改为如下代码并且保存:

#import 

#import "Cattle.h"

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

     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

     id cattle = [Cattle new];    

     [cattle setLegsCount:4];

     [cattle saySomething];

     [pool drain];

     return 0;

}

第八步,选择屏幕上方菜单里面的“Run”,然后选择“Console”,打开了Console对话框之后,选择对话框上部中央的“Build and Go”,如果不出什么意外的话,那么应该出现入图3-1所示的结果。如果出现了什么意外导致错误的话,那么请仔细检查一下你的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: