黑马程序员技术交流社区
标题: OC笔记 [打印本页]
作者: xiaoguang 时间: 2015-8-18 23:34
标题: OC笔记
OC方法重载:
没有!!!!!
重载:在一个类中定义同名的方法,方法 的参数的类型和个数可以不同!
OC中的static
static修饰局部变量:延长局部变量的生命周期
static修饰全局变量:当前变量只能在当前文件中使用
static修饰函数:函数只能在当前文件使用
static不能修饰方法;
static不能修饰实例变量;
OC中的self和super
OC的self就相当于JAVA中的this指针
super代表父类;
self应用场景:
用在类方法中;
在类方法中使用其指代的是当前类;
Person *p=[Person new];
[p class];返回的是类的地址!!
用在对象方法中;
self指代的是调用当前方法的对象(存在于栈区)
self修饰变量(在对象方法,类方法不能访问成员变量)
set方法中 如果定义实例变量和局部变量同名则:
// 函数内部可以定义和全局变量同名的变量
// 如果同名,局部变量会暂时屏蔽全局变量的作用域;
解决方法: self->实例变量=局部变量名; 即可!!
继承:
1).导入继承的那个类的头文件
2).@interface 类名:父类名
基类的私有属性能被继承,但是不能被使用;
OC中的继承是单继承,也就是说一个类只能一个父类,不能继承多个父类
继承的合理性;
父类的方法,在子类中重新实现一下,这种方法就叫做方法的重写;
继承类的调用顺序;
1.>在自己类中找
2.>如果没有,去父类中找
3.>如果父类中没有,就去父类的父类中找
4.>如果父类的父类没有,就往上找,直到找到基类(NSobject)
5.>如果NSobject都没有就报错了
实例变量修饰符
@public (公开的):作用于所有的类
@protected 受保护的:作用于当前类和子类
@private 私有的: 当前类使用
@package(框架级别的) 作用于框架级别的
实例变量作用域使用注意事项
1.>在interface中,如果没有添加修饰符,默认是protected 受保护的类
私有变量
私有属性不能被继承,也不能被访问;
在.m中声明,可以被当前类访问调用
私有方法:
在.h中没有声明,在.m中实现了,这就是私有方法
不能直接在main中用对象进行访问;
私有方法只能在当前类中调用访问;
在私有方法访问必须用self 方法.
description方法
当我们以%@的格式,打印对象的时候,方法调用了description方法;
对象中如果没有重写父类的descroption方法,则调用父类的;
千万不要在description方法中同事使用%@和self;同事使用的话,代表要调用self的des方法,因此会导致程序陷入死循环.循环调用description方法;
作者: 毛强 时间: 2015-8-19 00:20
太棒了,
作者: 蓝蓝 时间: 2015-8-19 01:39
赞!!!!!!
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |