黑马程序员——Objective-C语言知识整理——Objective-C语言基础知识总结
来源:互联网 发布:欧洲旅游团 知乎 编辑:程序博客网 时间:2024/05/16 14:24
------- android培训、java培训、期待与您交流! ----------
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,bint 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 异常捕捉
为了提高程序的健壮性,需要用到异常处理语句,异常捕捉的作用将程序运行过程中的异常(如地址越界)捕捉到,进而运行异常处理语句,保证程序的正常退出。
代码实例:
- 黑马程序员——Objective-C语言知识整理——Objective-C语言基础知识总结
- 黑马程序员——Objective-C语言知识整理——构造方法相关知识总结
- 黑马程序员——Objective-C语言知识整理——类与对象基本知识
- 黑马程序员——Objective-C语言知识整理——封装、继承与多态
- 黑马程序员——Objective-C语言知识整理——类方法与对象方法
- 黑马程序员——Objective-C语言知识整理——匿名类与self/super关键字
- 黑马程序员——Objective-C语言知识整理——类成员变量的设置与获取
- Objective—C语言
- 黑马程序员——Objective-C语言基本知识总结——Foundation框架
- 黑马程序员——Objective-C语言知识点总结之面向对象
- 黑马程序员——Objective-C语言知识点总结之OC特有语法
- 黑马程序员——Objective-C语言知识点总结之内存管理、Block、Protocol
- 黑马程序员--Objective-C语言基础知识--面向对象
- 黑马程序员--Objective-C语言基础知识--三大特性
- 黑马程序员--Objective-C语言基础知识--特有语法
- 黑马程序员——01-C语言基础知识总结
- 黑马程序员——C语言知识的总结
- 黑马程序员——Objective-C语言简介——黑马 ios 技术博客
- 关于aps.net进程内定时发送邮件的问题
- AT指令集及S寄存器
- javascript 日期Date对象处理函数
- 浅析一个Manifest文件
- Unity3D 内存管理
- 黑马程序员——Objective-C语言知识整理——Objective-C语言基础知识总结
- C#压缩文件夹方式
- Cocoa Touch Static Library
- MySQL<一>简单语法
- java按http地址列表下载文件队列
- 1
- 日语学习之沪江N3基础 20150625 -4
- DayDayUP_Linux运维学习_Windowns下的端口查询
- SAT语法中复合句如何针对性练习?