OC学习知识点总结

来源:互联网 发布:lol mac 编辑:程序博客网 时间:2024/06/07 03:35
                    —————第一天—————
// 1.类指的是什么?
// 类是具有相同特征和行为的抽象.
// 2.什么是对象?
// 对象是类的实例.
/* 3.接口部分的代码如何实现?
@interface 类名 : 父类名
{
实例变量
}
*/
/* 4.实现部分代码怎么写?
@implementation 类名
{
实现的方法
}
*/
// 5.方法分为哪两种?
// 类方法和实例方法
// 6.实例变量命名注意事项?
// (1)必须放在大括号中定义
// (2)变量名前面添加下划线
// (3)符合命名规范



// OC中所有的对象都是在堆区的,但是需要在栈区创建一个指针指向对象,(存储的对象的首地址).
// OC中创建对象分为两步: 分配内存和初始化
// 分配内存空间: 所分配的内存空间在堆区.同时会将里面的内容清0
// 初始化: 为实例变量赋值.
// 消息发送机制[receiver message]
// 在OC中调用方法使用[],其实所谓的调用方法,就是消息发送机制.
// alloc方法:是NSObject的方法,系统已经实现好了.只需要调用该方法就可以实现分配内存空间.
// alloc方法是类方法(+),在调用的时候必须用类名来调用.
// alloc方法调用之后,有返回值.返回值是对应的实力类型,供外界使用.
/*
init方法: 是实例方法(-),在调用的时候用对象名来调用.
init方法调用完之后有返回值.返回值是对象本身.
*/


// 1.开辟内存空间
// Person *p = [Person alloc];
// // 2.初始化init
// p = [p init];

// 创建Person对象p
Person *p = [[Person alloc]init];
// 吃饭
[p eat];
// 睡觉
[p sleep];
// 打豆豆
[p hitDouDou];

// 创建一个audi对象,调用方法.

// 问题:定义的p对象,实例变量是没有值的.

// 解决方案:在定义对象的时候,分为两步:分配内存空间并初始化.而初始化的主要目的是给实例变量赋值.既然系统给我们提供init方法没办法满足需求,那么我们需要自己重写init方法,实现需求.
// 名词:继承 父类 子类 重写 接口 实现 类方法 实例方法 实例变量 成员变量 初始化

// 类和文件的关系:类和文件没有本质的关系.一个文件里可以定义多个类.文件名也可以和类名不一致.只不过在使用类的时候,需要引入该类所在的头文件(.h文件),

                      —————第二天—————
 1. 直接访问变量 :语法 p->name
2. 实例变量可见度: 公开可见度 所有文件都能访问
                               受保护的 默认也是 在本类和子类中     
                                私有的 只在本类中
3. 访问实例变量的方法:
setter 给实例变量设置值
getter 获取实例变量的值

4. 初始化方法 也是给类的实例变量赋值
5. init  重写时只能赋默认的值
6.自定义初始化方法  将值作为参数传到方法中给实例变量赋值
7. id 和 instancetype 
8. self 表示自己 在+方法中 和 -方法中 有区别
9. 方法名
10. 导入头文件的三种方式 #import  #include  @class 

0 0
原创粉丝点击