黑马程序员——Objective-C语言知识整理——Objective-C语言基础知识总结
2015-06-25 15:56
459 查看
------- android培训、java培训、期待与您交流! ----------
代码结构说明:
第1部分处的#import<>为头文件引入语句
第2部分的NSLog()函数,其功能类似于printf函数,将字符串打印输出到控制台。
(1) #import与#include的使用异同(面试题)
相同点:两中用法都可以引入头文件。
不同点:使用#import可以防止头文件的重复引入;而使用#include时,需要通过预取指令,判断是否已经包含某一头文件,用来防止重复,没有预取指令则无法防止重复引入。
(2) import与@class的区别(面试题)
1) @class一般写在类的声明文件中,即.h头文件中;import则写在类的实现文件中,即.m源文件中。
2) import在循环依赖关系中会出现循环包含死循环,造成编译出错问题,在传递依赖关系中(如A->B,B->C),每次修改都会重新编译全部头文件,耗时太长。为了避免以上两种情况使用@class。
3) @class用来通知编译器预先定义的类,是一个标识符。
(3) Foundation/Foundation.h头文件介绍(面试题)
头文件位置:
头文件作用:将编写代码时需要添加的所有系统头文件统一引入,方便程序的编写。
(4) '@'符号功能
1) @+"字符串内容",功能是将字符串转换为Objective-C中的NSString类型。
2) @+标识符,表明标识符为关键字,Objective-C中关键字以@开头,如:@try、@end等等。
(5) Objective-C中的注释
Objective-C有三种注释:单行注释、多行注释(这两种与C原因相同)与文档注释("/**"与"*/")。
文档注释示例:
不同点:相比较printf函数,1)NSLog函数可以输出日志信息,如运行时间等项目信息。
2)NSLog函数输出内容可以自动换行。
3)NSLog函数传递的参数是NSString类的对象,printf使用字符串地址。
4)NSLog函数输出字符串时,格式控制符为%@,printf函数使用%s。
.h文件——头文件,用于进行类的声明、头文件的引入等。
.c文件——源文件,程序代码实现。
.o文件——目标文件,编译结束后生成的文件,用于链接成可执行文件。
.out文件——可执行文件。
Objective-C语言文件类型
.h文件——头文件,与C语言相同。
.m文件——Objective-C源文件,类的实现文件,参与编译。
扩展:C++源文件为.cpp文件。
C语言数据类型
Objective-C语言数据类型
(2) 关键字的对比
C语言关键字
总计32个关键字,如:数据类型关键字char、int等;流程控制关键字return、while等。
Objective-C语言关键字
1) C语言中的关键字均可以在Objective-C语言中使用。
2) Objective-C中新增的关键字,需要加'@',如@try、@end、@interface等等,关键字self/super除外。
(3) 流程控制语句的差异
C语言中的流程控制语句
1) if else语句
2) switch语句
3) while语句
4) for语句
5) do while语句
Objective-C中的流程控制语句
1) C语言中的基本流程控制语句,在Objective-C中都兼容。
2) Objective-C提供了一种增强型的for循环。
for循环使用举例:
输出结果为:one two three
代码功能分析:该for循环可以遍历字符串数组的每个字符串,调用NSLog函数可以在控制台显示输出。
(4) 函数定义与声明的差异
C语言函数定义与声明
1) Main函数前定义,函数不需要再调用时进行函数声明。
2) Main函数后定义,函数调用时,需要提前进行函数声明。
代码举例:
运行结果为:
代码说明:调用函数sum时,需要提前进行函数声明。
Objective-C语言函数的定义与声明:
函数定义格式为:
①方法类型表示符 ②(返回值类型) ③函数名: ④(参数类型) 参数名⑤And: ⑥(参数类型) 参数名 ……
其中①部分取值为‘+’和‘-’,‘+’表示类方法;‘-’表示对象方法。
代码举例:+ (void) Test;//无参数函数定义或声明
- (int) sum: (int) a and:(int) b;
类方法与对象方法的声明与实现,分布需要放在@interface与@end、@implementation与@end之间。
代码实例:
1、Objective C语言简介
Objective-C语言是在C语言基础上,进行部分语法扩展,满足面向对象编程要求的新的编程语言。支持C语言的基本语法,同时在此基础上定义了新的语法、语义规则。2、Objective-C基础知识
OC程序代码举例代码结构说明:
第1部分处的#import<>为头文件引入语句
第2部分的NSLog()函数,其功能类似于printf函数,将字符串打印输出到控制台。
(1) #import与#include的使用异同(面试题)
相同点:两中用法都可以引入头文件。
不同点:使用#import可以防止头文件的重复引入;而使用#include时,需要通过预取指令,判断是否已经包含某一头文件,用来防止重复,没有预取指令则无法防止重复引入。
(2) import与@class的区别(面试题)
1) @class一般写在类的声明文件中,即.h头文件中;import则写在类的实现文件中,即.m源文件中。
2) import在循环依赖关系中会出现循环包含死循环,造成编译出错问题,在传递依赖关系中(如A->B,B->C),每次修改都会重新编译全部头文件,耗时太长。为了避免以上两种情况使用@class。
3) @class用来通知编译器预先定义的类,是一个标识符。
(3) Foundation/Foundation.h头文件介绍(面试题)
头文件位置:
头文件作用:将编写代码时需要添加的所有系统头文件统一引入,方便程序的编写。
(4) '@'符号功能
1) @+"字符串内容",功能是将字符串转换为Objective-C中的NSString类型。
2) @+标识符,表明标识符为关键字,Objective-C中关键字以@开头,如:@try、@end等等。
(5) Objective-C中的注释
Objective-C有三种注释:单行注释、多行注释(这两种与C原因相同)与文档注释("/**"与"*/")。
文档注释示例:
/** *@brief 求和函数 *参数a,b为int型 *返回值:a+b为int型 */ - (int)sum:(int) a and:(int) b; { return a+b; }
3、Objective-C与C语言的比较
3.1 Objective-C语言NSLog函数与C语言printf函数的比较
相同点:两个函数均可以将字符串在控制台显示输出。不同点:相比较printf函数,1)NSLog函数可以输出日志信息,如运行时间等项目信息。
2)NSLog函数输出内容可以自动换行。
3)NSLog函数传递的参数是NSString类的对象,printf使用字符串地址。
4)NSLog函数输出字符串时,格式控制符为%@,printf函数使用%s。
3.2 源文件对比
C语言文件类型.h文件——头文件,用于进行类的声明、头文件的引入等。
.c文件——源文件,程序代码实现。
.o文件——目标文件,编译结束后生成的文件,用于链接成可执行文件。
.out文件——可执行文件。
Objective-C语言文件类型
.h文件——头文件,与C语言相同。
.m文件——Objective-C源文件,类的实现文件,参与编译。
扩展:C++源文件为.cpp文件。
3.3 基本语法对比
(1) 数据类型的对比C语言数据类型
Objective-C语言数据类型
(2) 关键字的对比
C语言关键字
总计32个关键字,如:数据类型关键字char、int等;流程控制关键字return、while等。
Objective-C语言关键字
1) C语言中的关键字均可以在Objective-C语言中使用。
2) Objective-C中新增的关键字,需要加'@',如@try、@end、@interface等等,关键字self/super除外。
(3) 流程控制语句的差异
C语言中的流程控制语句
1) if else语句
2) switch语句
3) while语句
4) for语句
5) do while语句
Objective-C中的流程控制语句
1) C语言中的基本流程控制语句,在Objective-C中都兼容。
2) Objective-C提供了一种增强型的for循环。
for循环使用举例:
输出结果为:one two three
代码功能分析:该for循环可以遍历字符串数组的每个字符串,调用NSLog函数可以在控制台显示输出。
(4) 函数定义与声明的差异
C语言函数定义与声明
1) Main函数前定义,函数不需要再调用时进行函数声明。
2) Main函数后定义,函数调用时,需要提前进行函数声明。
代码举例:
<span style="font-size:14px;">// 函数声明.cpp : Defines the entry point for the console application. // #include "stdafx.h" /** *sub函数实现减法功能 *参数:a,b为操作数 *返回值:a-b */ int sub(int a,int b){ return a-b; } int main(int argc, char* argv[]) { int a=3,b=2;//定义并初始化操作数a,b int result;//result存放操作结果 result=sub(a,b);//做减法操作 printf("a-b=%d\n",result);//打印输出结果 int sum(int a,int b); result=sum(a,b);//做加法操作 printf("a+b=%d\n",result);//打印输出结果 return 0; } /** *sum函数实现减法功能 *参数:a,b为操作数 *返回值:a+b */ int sum(int a,int b){ return a+b; }</span>
运行结果为:
代码说明:调用函数sum时,需要提前进行函数声明。
Objective-C语言函数的定义与声明:
函数定义格式为:
①方法类型表示符 ②(返回值类型) ③函数名: ④(参数类型) 参数名⑤And: ⑥(参数类型) 参数名 ……
其中①部分取值为‘+’和‘-’,‘+’表示类方法;‘-’表示对象方法。
代码举例:+ (void) Test;//无参数函数定义或声明
- (int) sum: (int) a and:(int) b;
类方法与对象方法的声明与实现,分布需要放在@interface与@end、@implementation与@end之间。
3.4 Objective-C新增数据类型
布尔类型取值为true和false,可以用于条件控制语句的判断,当变量为true时,以整型格式输出值为1,使用代码以及测试结果举例为:3.5 异常捕捉
为了提高程序的健壮性,需要用到异常处理语句,异常捕捉的作用将程序运行过程中的异常(如地址越界)捕捉到,进而运行异常处理语句,保证程序的正常退出。代码实例:
相关文章推荐
- 编程界主流脚本编程语言的比较和选择
- 什么是Perl?编程语言Perl详细介绍
- 编程语言里的静态、动态、强类型、弱类型等概念介绍
- 编程趣事:当下流行编程语言的”讨厌”程度排行榜
- Lua面向对象编程学习笔记
- 程序员必看2008编程语言走势解盘
- Objective-C的内省(Introspection)用法小结
- 24种编程语言的Hello World程序
- 256种编程语言大汇总
- 编程语言JavaScript简介
- 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中NSLog输出格式大全
- 学编程选什么语言好?是PHP、Python还是Ruby?
- 编程语言Python的发展史
- Python编程语言的35个与众不同之处(语言特征和使用技巧)
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码