以前的学习方法总是看完视频或者找到解决办法就没有然后了,导致很多东西都了解的不够深入,再去查找的时候也是费时费力。最近想重新查漏补缺下,把所有的知识点总结下,大部分来自黑马程序员的视频,希望能巩固自己的知识。
类与对象
1.oc在C的基础上
- 增加了面相对象的语法
- 将C语言中复杂繁琐的语法封装的更加简单
2.更为简单
- "#import 指令"
同一个文件无论import多少次,最终都只会包含一次 不会出现重复包含的情况 - NSLog函数
自动换行,会输出一些其他的调试信息 - NSString
字符串常量必须前面要加一个前缀@ - 数据类型
BOOL
Boolean
class
id
nil
SEL
block
3.面相对象的方法
- 面相过程 面相对象
是解决问题的思路
在解决问题的过程中所有事情都是亲力亲为这个叫做面相过程
不是亲自去做,去找个专门的对象去做就是面相对象 - 面向对象的优点
后期维护会比较方便 - 类和对象
类是对一群具有相同特征的行为的统称 抽象的 不能直接去使用
对象是现实生活中的具体存在 - 类和对象的关系
类是模板,对象是根据模板创建出来的 - 设计类的三要素
类名 特征 行为
4.类和对象
- 定义类
类的声明
@interface 类名 :NSObject
{
-> 属性
}
方法的声明
@end
类的实现
@implementation 类名
方法的实现
@end
- 举例:定义一个手机类
#import <Foundation/Foundation>
@interface Phone :NSObject
{
NSString *_color;
float _size;
NSString *_cpu;
}
@end
@implementation Phone
@end
- 方法的声明和实现
a. 声明的位置在@interface的大括号外面
b. 实现的位置在@implementation之中
c. 实现的语法:将方法的声明拷贝到@implementation之中 去掉分号 将方法的实现代码写在大括号中就可以了
5.对象的创建
- 类名* 对象名 = [类名 new];
- 对象的特点:对象拥有类中定义的所有成员
对象中的成员可以直接访问
6.访问对象
7.同一个类可以创建N个对象
8.nil与NULL
- NULL
只能作为指针变量的值,如果一个指针变量的值是NULL,代表这个指针不指向内存中的任何一块空间
NULL其实等价于0,是一个宏 - nil
只能作为指针变量的值,代表这个指针不指向内存中的任何空间
nil也等价于0,也是一个宏
所以,NULL和nil其实是一样的
- 使用建议
C指针用NULL
OC 的类指针用nil