一、基础语法
1> OC语言和C语言
- C语言是面向过程的语言,OC语言是面向对象的语言
- OC语言继承了C语言,并增加了面向对象的思想
- 以下内容只介绍OC语言与C语言的不同之处
2> 关键字
- 以字母或下划线开头
3> 字符串
- OC语言有自己特有的字符串,,区别于C语言字符串
4> BOOl类型
- 只有YES和NO两种取值
- 本质上是char类型,但理解为整型
- BOOL类型是由 条件编译机制引进的
5> #import与#include
- 都是将文件内容拷贝到指令出现的代码行
- 系统文件用尖括号,用户自定义的文件用圆括号
- #import包含的文件中有条件编译指令,可以防止文件被多次拷贝
6> NSLog与printf
- NSLog
① NSLog函数包含在Foundation框架中 ② NSLog函数接收的是OC语言字符串 ③ NSLog函数默认在结束处输出换行 ④ NSLog函数不能以%s格式输出包含中文的字符串
- printf
① printf函数包含在stdio.h文件中 ② printf函数接收的是C语言字符串 ③ printf函数需要使用换行符‘\n‘
- NSLog的其他用途
① 通过_LINE_参数输出改代码所在的行号 ② 通过_FILE_参数输出改代码所在的文件的文件名 ③ 通过_func_参数输出代码所在的函数的函数名
二、类、对象和方法
1> 类
- 类与结构体
① 结构体是数据的封装 ② 类是数据及与数据相关操作的封装
- 类的声明
① 用@interface和@end组合来声明一个类,通常继承与根类NSObject ② 指定类名:首字母大写,使用驼峰标示,不包含数字 ③ 声明属性列表:以下划线开头,可以与get方法的名称区分开 ④ 声明方法列表:包括类方法和对象方法
- 类的实现
① 用@implementation和@end组合来实现类 ② 实现类声明中的方法列表 ③ 类的实现也可以定义实例变量,通常不这样定义 ④ 实现未声明的类会发出警告
- 类的本质
① 类本质上也是一个对象,是class类定义的对象,称为类对象 ② 使用class方法可以获取类对象 ③ 每个类中都会有一个superclass指针指向其父类
- 类的加载和初始化
① 加载 1)类在使用之前会被加载至内存,加载完毕调用+(void)load方法 2)所有的类只会被加载一次 3)方法会在类加载的同时被加载 4)某个类定义的所有对象的isa指针都指向内存中该类的唯一副本 5)首先加载父类,其次是子类,最后是分类 ② 初始化 1)类在使用时才会调用initialize方法初始化 2)没有使用的类不会调用initialize方法 3)首先调用父类的初始化方法,其次是子类
- 类的使用注意
① 类的声明和实现必须成对出现 ② 类不能嵌套声明和实现 ③ 成员变量不能在定义的时候初始化,也不能直接使用 ④ 成员变量不能用static等关键字修饰 ⑤ 访问没有的成员变量会报错 ⑥ 成员变量必须写在大括号内,方法列表不能写在大括号内 ⑦ 类的声明必须出现在使用之前
- @public、@protected、@
① @public修饰的成员变量在任何地方都可以直接访问 ② @protected修饰的成员变量可以在当前类以及子类的对象方法中直接访问,默认为该类型 ③ @private修饰的成员变量只能在当前类的对象方法中直接访问,在实现中声明的成员变量默认为该类型 ④ @package修饰的成员变量在同一个“体系内”(框架)可以访问, 介于@private和@public之间
2> 对象
- 对象与类
① 类是具有相同或相似属性和操作的对象的抽象;对象是类的一个实例,是类通过调用一定的方法创建的 ② 类本身会占用内存空间,包含所有的方法列表 ③ 类的成员变量不会占用内存空间,只有在定义对象时才会分配存储空间
- 对象的本质
① 本质上,我们研究的一切事物皆是的对象,包括具体事物和抽象事物 ② 每个对象总会携带它的isa成员,指向该对象的类 ③ 系统总会携带对象的相关信息
- 对象的创建和初始化
① 初始化方法通常用init开头 ② 类方法alloc和init完成对象的创建和初始化 ③ 类方法new可以代替alloc和init完成对象的创建并初始化 ④ 在对象的初始化时会加载一次类,返回一个该类型的指针
- 匿名对象
① 每次创建的匿名对象都是不同的对象 ② 匿名对象会造成内存泄露,尽量不要创建类似匿名对象的对象
3> 方法
- 方法的定义
① 返回值类型:指定函数返回值的类型 ② 参数列表:多个参数用冒号及冒号前的描述隔开 ③ 方法名:在有参数列表的方法中,方法名包括冒号及冒号前的描述
- 类方法
① 以加号(+)开头 ② 只能通过类名调用,可以在中括号内调用 ③ 不能访问实例变量 ④ 当不需要访问成员变量的时候通常使用类方法 ⑤ 工具类的方法通常为类方法
- 对象方法
① 以减号(-)开头 ② 只能通过对象调用,可以在中括号内调用 ③ 对象方法能访问实例变量
- 方法的使用注意
① 方法不能独立与类而存在 ② 方法有声明就必须有实现,否则会报错 ③ 方法只有实现,没有实现,仍然能够调用,但是会发出警告 ④ 访问没有的方法会警告 ⑤ 类方法可以和对象方法同名 ⑥ 方法不能用static等关键字修饰 ⑦ 带参数的方法,一个参数对应一个冒号,通常在每个冒号前写描述
- 方法与函数的区别
① 函数的定义可以出现在文件的任意位置,方法只能出现在@implementation和@end之间 ② 函数归文件所有,方法归类/对象所有 ③ 方法通过类/对象调用,函数不依赖于类/对象 ④ 方法可以访问成员变量,函数不可以
时间: 2024-12-28 21:23:04