1.import和include的异同: 1).include和import都是引入头文件. 2).import引入的头文件可以防止重复包含 3).include它是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题
2.NSLog和printf的使用差异: 1).NSLog会自动换行,而printf不会自动换行 2).NSLog会自动输出时间等项目信息,printf不会输出调试信息 3).NSLog函数的参数是一个NSString对象,printf是一个字符串常量指针 4).注意: NSLog 不能打印 C的中文字符串,printf不能输出OC的字符串
3.OC中的注释 注释 给程序员看的,用于程序员之间的交流 注释不参与编译 OC中提供了三种注释: 1) 单行注释 用"//注释内容" 2) 多行注释 用"/* 注释内容 */" 3) 文档注释 用"/** *内容 */"
4.OC中新增的for in (快速枚举) 用法:
//定义一个数组 NSArray *arr = @[@"one",@"two",@"ritian"]; //快速遍历数组 for (NSString *str in arr) { NSLog(@"%@",str); }
5.OC中新增的数据类型 逻辑型: 1) Boolean (布林) 类型 ----> unsigned char 用来存储真值(true 非0)或者假值(false 0) 用该类型可以定义新的变量,变量有什么特点? 这个变量就是用来存储真假值的,取值 true false 2) BOOL 类型 也是用来存储真值的(YES 真 1, NO 假 0) 用BOOL类型也可以定义变量 这个变量就是用来存储真假值的,取值 YES NO
Boolean 和 BOOL的区别: 共同点: 都是一种数据类型 ,都可以用来存储真假值 不同点: Boolean 取值 true false BOOL 取值 是YES NO Boolean 不能存储负数 ,BOOL 可以存储负数
6.类: 相同属性和行为的一个抽象 由三部分构成: 类名 属性 行为 成员变量(实例变量\属性)
程序中一个类必须:类的声明 + 类的实现
1).类的声明:
格式: @interface 类名 :NSObject { //声明类的实例变量(成员变量\属性) //声明的格式: 数据类型 变量名; 注意: 编程习惯: 类的实例变量要以 下划线 开头
} //声明类的行为 (在@interface 和 @end中间并且在大括号外部) @end
2).类的实现:
类的实现的作用: 实现 类声明 中声明的行为
格式: @implementation 类名 //实现类的行为 @end
3).创建对象
格式: [类名 new];
[Car new] 会做三件事情,逐步完成的
1) 把类Car加载到内存中(第一次使用的时候加载),并且在内存的堆区开辟一块内存空间 2) 给类的实例变量(成员变量\属性) 进行初始化(把基本数据类型的初始化为 0,给其他类型的nil) 3) 返回刚申请的内存空间的首地址
Car *p = [Car new]; 有两种理解方式
1) 创建一个 类 类型的指针变量,并且初始化 2) 用Car这个类实例化了一个对象,对象名是 p
4).获取对象的属性值:
格式: 对象名 -> 实例变量名; (要求实例变量必须是public类型)
|