Objective-c第一课,OC的面向对象

来源:互联网 发布:java 泛型 t e k v 编辑:程序博客网 时间:2024/05/18 00:47

之前基本上搞Android,边学习边做东西,这学期有幸加入到了一个苹果实验室,有个同年级IT大佬教我们开发ios的基本知识。想起之前有个研究生给我们就业指导是说

       “学移动端开发,就要先学IOS,要是一上来就搞Android基本上就是废了。”

大概就是这个意思,我也不知道为何发此感叹。不过确实搞移动端开发,怎么只能偏向一科呢?

今天大概学了OC的第一个基础知识:面向对象。(无奈,笔记本win系统,没装开发工具,先不贴图了,全是无聊的文字)

      OC和基本上所有的语言一样都需要引入头文件,不过OC是这样的:

     #import <...>

     #import "..."

    例如我们的第一个hello world;

    #import <Foundation/Foundation.h>

    引入了Foundation的头文件,Foundation是Cocoa框架的一个重要的基础头文件。Cocoa是Mac os X原生的框架之一。

   当我们字Xcode中创建oc程序时写对象,就是new cocoa class文件。

   接下来说到oc 中的对象。

   oc中的对象和java中的对象一样都是有一个基类NSObject(NS是Nextstep的缩写)。模板大概是这样

   类的定义

@interface  类名 :父类{   实例变量定义;}方法生命;...@end
和c++一样,我们一般把函数的实现写到外面,而这里直接在另一个文件

@implementation 类名方法的定义;...@end
比如一个Human的对象

@interface Human : NSObject-(void)speak;@end
@implementation Human-(void)speak{    NSLog(@"I speak chinese");}@end

上面就定义了一个Human 的类,当我们需要调用这个方法时就这样

...#import "Human.h"int main(int args,const char *argv){    ...    Human *human = [[Human alloc]init];    [human speak];    ...}
其中[obj msg]为OC中的消息表达式,我们调用msg的方法就是这样调用,告诉obj,我要调用 msg方法。

函数的声明和定义这里解释下,

返回类型和参数都是用小括号包住的

-(int) getWeight:(int)id{

...

}//这里获取指定id号的体重。

多个参数是这样

-(datatype) func:(datatype)arg1 columnName:(datatype)arg2...{

}

例如:

-(float)getCost:(float)price Number:(int)number{

    return price*number;

}

调用时就这样 

...

[obj getCost:5.5 Number:10];

...


注意这里没有写类中的属性定义生命,以及解释function前面(+)和(-)的区别,下次再详谈。



0 0