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方法;
|