从第一个Objective-C程序理解类、对象和方法

来源:互联网 发布:轴系校中软件 编辑:程序博客网 时间:2024/06/06 09:26

促使我学习Objective-C语言一个最主要原因是 我想 开发IOS应用程序,相信很多人刚开始和我一样,都是从最基础的语言开始学起。

下面我们从第一简单的例子开始讲起,个人认为脱离实际例子的语法讲解效果不是很好。

这个例子有3段程序块:

LittleRabbit.h      LittleRabbit.m       main.m

首先,是第一个LittleRabbit.h

<span style="font-size:14px;">@interface LittleRabbit : NSObject{    int age;    NSString * name;    int weight;}-(void)initWithAge:(int)_age andName:(NSString *)_name;-(void)sleep;-(void)weightUp:(int)_weight;-(void)info;@end</span>

紧接着,是 第二个LittleRabbit.m:

<span style="font-size:14px;">#import <Foundation/Foundation.h>#import "LittleRabbit.h"@implementation LittleRabbit-(void)initWithAge:(int)_age andName:(NSString *)_name{    age = _age;    name = _name;}-(void)sleep{    NSLog(@"小白兔累了,它在睡觉!");}-(void)weightUp:(int)_weight{    weight = _weight + 10;    NSLog(@"小白兔长胖了,现在已经%d斤了!",weight);}-(void)info{    NSLog(@"%@, %d, %d",name,age,weight);}@end</span>

最后是主函数,main.m

<span style="font-size:14px;">#import <Foundation/Foundation.h>#import "LittleRabbit.h"int main(int argc, const char * argv[]) {    @autoreleasepool {        LittleRabbit *rabbit = [LittleRabbit alloc];        [rabbit initWithAge:2 andName:@ "Ramsey"];        [rabbit sleep];        [rabbit weightUp:10];        [rabbit info];        NSLog(@"Hello, World!");    }    return 0;}</span>

我在书上看到这个例子,觉得很不错,特别是对于类、对象和方法的理解。

下面说几点,我学到的知识点。

首先,在Objective-C中,后缀是.m,头文件依然是.h,所以看到.m的文件不要觉得奇怪。补充,C语言源文件后缀是.c,C++语言源文件是.cpp

其次,很多.m文件中,开头引入的Foundation.h是一个开发框架,直接导入就好

如果之前有C语言基础或者C++基础的同学,可能要注意以下几点:

在Objective-C中,类的定义都是在@interface 和 @end之间的,类后面的冒号代表继承的类,默认的继承的是 NSObject 类。

细心的人可能会发现,不同的方法前面有’+‘和’-’,额,在我这个例子里没有涉及加号。这是两种方法类型,符号'-'代表该方法是一个实例方法,而'+'表示该方法是 类方法。

实例方法是对类中实例执行的一些操作,而类方法是对类本身执行的某些操作。

通常情况下,类的声明和实现是分开的,分别在XXX.h和XXX.m文件中,这样感觉很清晰。

其中,函数名,类名最好规范。函数名首字母小写,后面的单词首字母大写。而类名的每个单词的首字母都大写。

其他还有很多细节方面的东西和语法,不过多看些例子就可以掌握。比如在类中声明方法的格式,参数的位置,主函数中类的初始化,包括如何输出NSLog等等


0 0