您的位置:首页 > 移动开发 > IOS开发

iOS笔记:第九篇 OC 简介

2015-04-05 17:25 295 查看
第一节 OC简介
1.OC简介

1)OC是在C语言基础上增加了面向对象的语法

2)OC是一门面向对象的语言

2.第一个OC程序

2.1 #import 导入文件

功能与#include类似,但是它可以自动防止文件的重复包含

#import 用法与#include相同

#import <> 包含系统的头文件

#import ""包含自己项目中的头文件的

2.2 NSLog()函数:是OC提供的用于日志输出的函数,与printf类似

相同点:都是向控制台输出内容,都支持格式化输出

不同点:

->printf函数中的格式化字符串,是C语言的字符串

->NSLog中的字符串是一个NSString的对象,表现形式@"格式化字符串"

->NSLog比printf多了一种格式符(占位符)%@ 作用:用于输出对象

->NSLog自动换行

->带有日志信息

2.3 NS 前缀:在Foundation中所有类或全局的函数都是以NS开头

OC前缀的作用:为了区分不同项目中使用到相同的名字东西(全局函数,结构体,枚举,类...)

2.4 @作用:

1)在OC中大部分关键字都是以@开头

2)@快速创建不可变对象,只有系统提供特定的对象才能使用@符进行快读创建(@""快速创建一个NSString的对象)

3.OC与C语言的对比

->源文件对比

C语言 .h头文件 .c实现文件 OC .h头文件 .m支持OC与C语言混合编程 .mm支持OC与C++混合编程

->关键字:OC中增加了很多以@开头的关键字

->数据类型的对比

基本上所有的数据类型都可以定义变量,都可以作为函数行参类,做为函数的返回值类型

BOOL 逻辑类型 只有两个取值 YES(1)真 NO(0)假

NSObject * 对象类型

->流程控制:C语言所支持的流程控制OC都支持

OC增加了forin(增强for循环),用于遍历OC的集合对象(NSArray(数组),...)

->函数对比

C语言:函数 返回值类型 方法名称 (行参类型 行参名称 ...)

OC : 方法 方法类说明符(返回值类型) 方法名1withxxx:(行参类型) 行参名称;

对象方法:以 - 开头

所有方法声明中,遇到数据类型都要使用()括起来

一个:对应一个参数

类方法:以 + 开头

第二节 面向对象
1.面向对象的特点:强调是具有某种功能的对象

关注:当需要解决某个问题时,首先要考虑要什么样的对象,然后指挥对象做事情

2.使用面向对象的语言进行软件开发的步骤:

1>从现实生活中的对象中-抽象->类(类名,属性,行为—)->使用OC语法定义类->使用类创建对象->指挥对象做事情

2>在OC中类和对象关系:只有有了类才能创建对象

3>类定义:

类的声明

作用:

1)声明成员变量(实例变量),作用:当创建对象的时候,方便为这些对象分配存储空间

2)声明方法

格式:@interface 开头,以@end结尾

声明成员变量,必须在大括号中

声明方法,必须在大括号下面

@interface 类名 : NSObject

{

// 需要声明的属性:格式:数据类型 成员变量名称;

int _height;

}

//声明对象方法

- (返回值类型) 方法名称;

@end

类的实现

格式:@implementation 开头,以@end 结尾

@implementation 类名

- (返回值类型) 方法名称{

语句...

.....

}

@end

3.对象:在面向对象的世界中,一切皆对象.(对象是数据(状态特征)与行为(功能)一种封装体)

4.类:现实生活中的对象的抽象(把现实生活中具有相同状态特征,和行为特征的事物的共性提取出来的过程我们就称为抽象)

把现实生活中对象抽象称为类的过程就是类的设计.

5.类和对象关系:

1) 从现实生活来说,类是对象的抽象

2) 编程角度:只有有了类才能创建对象

6.类的设计:

类包含三个要素

1)类名

2)属性

3)行为

7.设计的方法:

1)名词提炼法

2)画面提取类(只有有相同特征的事物都可以提取称为一个类)

8.对象方法

无参无返回值对象方法

格式:

- (void) 方法名称;

无参有返回值的对象方法

- (返回值类型) 方法名称;

有一个参数的对象方法

- (返回值类型) 功能说明+参数说明符:(形参类型)形参名称

- (void) callToTel:(NSString *) phoneNum;

有多个参数的对象方法

- (返回值类型) 功能说明+参数说明符:(形参类型)形参名称 参数说明符1:(形参类型1)形参名称1

- (void) sendMessage:(NSString *) message toTel:(NSSTring *) phoneNum;

9.对象方法与函数的区别

对象方法:

1.对象方法是属于对象的

2.只有一个对象才能调用对象方法

3.对象方法必须是一个 "-" 开头

4.对象方法必须在@interface 与@end直接声明

5.对象方法必须在@implementation 与@end直接实现

函数:函数可以下文件任意位置(除了 @interface 与@end 之间)

所有的函数都是平行的,没有隶属关系

注意点:对象方法不可以像函数一样调用

第三节 NSString 的基本使用
1.在C语言中表示字符串方式

1) 字符数组:C语言的字符串的长度是,除了\0以外的字符所占用的存储空间的字节个数

char str[] = "张三";

unsigned long length = strlen(str);

NSLog(@"%zd",length );

2) char 类型的指针

char *str1 = "张三";

本质: 字符数组是在栈中,在栈中东西可以任意修改

char * 定义的字符串存储在常量区,常量区是只读区(readOnly)

2.在OC 中是通过一个NSString的对象来表示一个字符串的

创建NSString对象:

方式1:通过@"" 方式创建字符串

NSString *str = @"创建一个字符串";

NSLog(@"%@",str);

方式2:

后面的写法与NSLog是一致的

int age = 10; //格式化字符串 参数

NSString *str1 = [NSString stringWithFormat:@"age = %d,name = %@",age,@"张三"];

NSLog(@"%@",str1);

获取字符串长度,这个长度是字符串中字符的个数

unsigned long len = [str length];

NSLog(@"%zd",len);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: