黑马程序员技术交流社区

标题: OC数据类型及面向对象的特征 [打印本页]

作者: tabor    时间: 2015-7-1 00:09
标题: OC数据类型及面向对象的特征
OC延用C的优点,特别是指针,在OC上得到了完美的体现,所有的数据不仅仅是数据,还拥有了类的一些特性,也有复杂数据类型的特殊性,完全采用地址管理的方式(点语法)对所有OC数据进行操作和管理,这造成了OC的灵活性在C的基础上大大提高,更造就了iOS开发这种高技术出现,程序员不用花费太多的心思在语法和错误纠正上,当然,OC并不是完美的,还有很多要改进的地方,所以才有了更优秀的swift的出现。这里只论OC:

除C中的数据类型外,OC在此基础上增加了几种更具划时代意义的数据:NSString字符串、NSDate日期、NSArry数组、NSDictionary字典


看到NSString就让我想到了字符串,看到NSArray就让我想到了数组,其它两种虽然陌生,但是用法与NSString和NSArray类似
说到用法,就要说下函数与方法了,函数属于文件,除不能放在类的声明中,可以到处放,定义两者是相去甚远,方法除要将返回类型与参数类型用小括号括起来外,还要在前面加个加号或减号,调用时也相去甚远,方法用起来要[类或对象 方法],看上去相对函数来说更加贴近对象,看看基础定义与用法:


@interface Car : NSObject //:表示Car 这个类是NSObject的子类
{

作者: tabor    时间: 2015-7-1 22:32
@public     //加上@public 后,所有的对象都能访问,一般不加         成员变量定义; } - (void) run; @end     //这两个@语句之间就是声明了 @implementation Car //这下面两个@语句之间就是实现部分了 - (void) run {         NSLog(@"车跑起来了。"); } @end int main() {         Car* car1 = [Car new];  //创建对象car1         [car1 run];  //这样就运行了一遍方法了         return 0; } 这样看上去已经可以包含一些基本的类的声明与实现了,也有方法,但是这样还不能运行,就像C一样要用到#inlude <stdio.h>,OC要用到#import <Foundation/Foundation.h>才能算第一个程序正常,cc *.m framework foundation才能运行起来,如果看到out文件,就说明成功,运行./out就可以看到输出。  这只是一个像Hello world的程序,言归正传,数据类型定义, NS是一种通用,一定要加,否则就不是OC认识的了, NS之后的一个字母也是大写的!来看看定义和简单的用法: NSString 定义 如 NSString* str = @"hello";  //@""表示定义的是字符对象,所以也可以用一些类方法来访问,如[str length] NSArray 定义如 NSArray* array1[] = {@"hello", @"world" };也是类似,访问如: [array1 count]就可以看有多少个元素
作者: tabor    时间: 2015-7-1 22:37
加点有点乱了,cc *.m  -framework foundation 这样才对

另外.m可以是C与OC的混合
        .mm则可以是C++与OC的混合






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2