我非常的幸运,我先学了C语言,然后再接触OC,这样就有一个比较学习的过程,我相信我的学习经历和大部分人得一样。
C语言跟OC的不同之处在于:C语言是面向过程的语言,而Oc是面向对象的语言,通过比较两者可以更好的学习:C语言有头文件,函数的声明,定义,函数体,和函数返回值;OC同样有这些东西。不过OC的分开为三个文件而已。主文件(main.m),接口文件(interface)和实现文件(implementation)。举个例子:为了解决院校的学员信息管理问题,设计一个院校信息管理系统,需要在程序中创建一个学生类。其接口文件如下,它的拓展名为.h。
#import <Foundation/Foundation.h>//头文件
@interface Stufent : NSObject//属性的声明
{//属性部分
@public//访问修饰符号表示下面的实例变量是公共的
NSString *name;//学员的姓名
int age; //学员的年龄
NSString *hobby;//学员的爱好
}
//行为部分
-(void)sayHello;//打招呼的行为(函数声明)
-(void)eat; //吃饭的行为
@end
实例变量有三种,这个在以后深入会谈到。下面是OC的实现文件部分,它的拓展名为.m。代码如下:
#import “Stufent.h”
@implementation Stufent
//打招呼的行为
-(void)sayHello{
NSLog(@”Hello,my name is %@,I’m %d,my hobby is %@!”,name,age,hobby);
}
-(void)eat{
NSLog(@”%@ have to eat。”,name);
}
@end
接下来是创建和使用对象,它是主文件,名字为:(main,m),代码如下:
import
import “Stufent.h”
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建对象,完成了对象的声明,内存分配,初始化
Stufent *stu = [[Stufent alloc] init];
//Stufent *stu = [Stufent new];
//给stu对象的实例变量赋值
stu->name = @”John”;
stu->age = 18 ;
stu->hobby = @”/you can know it/”;
//调用stu对象的方法
[stu sayHello];
[stu eat];
}
return 0;
}
这样一个简单的面向对象的程序就已经编好了。