Objective-C lesson 1
虽然我学过很多语言,但目前是在做c#,再者网上的很多资料都是将objective-c和c或java等语言比较,我这里和c#进行比较。
在看了前三章后写点笔记供日后学习
首先是oc(Objective-C太长,今后都简称oc)中枚举的写法
typedef enum { male, fmale } Sex;
ps. typedef和enum是关键字
新建一个类 会自动生成两个文件如:学生类 Student.h Student.m
(注:Objective-C语言的类文件是*.m c语言的是*.c c++的是*.cpp 新手在有时候明明建的是一个c语言的类结果用oc的语法就导致老是编不过还找不到原因)
下面我们来看看这两个文件
// // Student.h // Chapter4 // // Created by Michael Zhao on 12-6-14. // Copyright 2012年 __MyCompanyName__. All rights reserved. // #import <Foundation/Foundation.h> @interface Student : NSObject @end
// // Student.m // Chapter4 // // Created by Michael Zhao on 12-6-14. // Copyright 2012年 __MyCompanyName__. All rights reserved. // #import "Student.h" @implementation Student - (id)init { self = [super init]; if (self) { // Initialization code here. } return self; } @end
先从Student.h说起
#import
*.h结尾的文件叫头文件,和c#最相似的就是命名空间吧。oc使用头文件来保函元素声明,这些元素包括结构体、符号常量、函数原型等。c语言中是用的
#include当然oc也可以用这个,但不建议 因为#import是gcc编译器提供的,xcode在编译oc、c和c++程序时都会使用它。最关键的时#import可以保证头文件只被包含一次!
下面大家看这一句
@interface Student : NSObject
短短的一句看似平常,其实碉堡了!
这句话通俗的可以理解为声明了一个名为Student的类,这个类继承与NSObject,并为Student声明了一个接口,想想在c#中要写成啥样?
当然,这还没有完,和c#一样在接口中我们可以定义字段和方法原型等东西。
Student.m就是类的实体部分,且可以实现头文件中定义的东西,和c#最大的区别是你不用全部实现interface里定义的方法,可以部分实现也可以重新定义新的。
posted on 2012-06-14 11:21 MichaelZhao 阅读(232) 评论(0) 编辑 收藏 举报