一,了解继承
oc中,一个类可以继承另一个类,被继承的类称为父类或超类,继承的类称为子类,子类可以直接拥有父类中除了@private实例变量之外的全部内容.
实现继承使用":"
@interface childClass :superClass{ }
OC只允许单继承,一个子类最多只能有一个直接父类.
没有父类的类称为根类,oc中的根类是NSObject.
子类能直接继承父类方法,也能重写父类方法.
继承具有传递性:如果A是B的子类,B是C的子类,那么A也具有C的特征和行为.
二,掌握ios中的方法
oc语言里,方法分为:类方法和实例方法.
类方法必须用类名来调用,实例方法必须用对象来调用.
方法是类的行为,在接口文件中声明,在实现文件中实现.
类方法和实例方法唯一的区别是:调用者不同(类方法用类名来调用,实例方法用对象名调用).
相同点是:都可以有参数和返回值
类只能调用类方法,对象调用实例方法
类方法:
+(int)test{
return 34;
}
调用的时候用类名Person直接调用.[Person test];
实例方法:
-(int)test
{return 23;}
调用的时候用类的对象调用,比如Person * person=[Person new]; 调用:[person test];(使用对象);
类声明处理方法
如果类比较多的时候,类的声明.h就会很多,在主函数或其他类中引用就比较麻烦,可以把一类为实现一个功能的类声明放在一个.h文件中
比如在Head.h中写#import "A" #import "B"....
在main.h中写#import "Head.h"就相当于把Head.h中的内容复制一份到main函数文件中.
[recevier message]消息机制
调用方法是面向过程常用说法,消息机制是oc从面向对象的角度,recevier就是一个对象或类名,它用什么功能或要做什么事情都是他自己的事,在外界看来就是给他一个消息,然后他去执行,所以message被称为消息.
oc中方法的使用:
使用setter和getter方法需要对属性一一赋值和取值,可以利用方法来实现一次赋值.setter和getter方法只有一个参数,下面不是getter方法和setter方法例如:
-(void)setName:(NSString *)name Age:(int )age Gender:(NSString *)gender
{
_name=name;
_age=age;
_gender=gender;
}
--------------------------------------------------
方法名是:setName:Age:Gender: 中间不带空格.
+(int)test;
-(int)test;可以同时存在,属于不同的方法.
--------------------------------------------------
类的初始化方法:
初始化方法只能调用一次, 在创建对象的时候调用
是一个实例方法 返回id类型 以init开头
初始化方法的作用是:创建对象的同时给对象赋初值
例如:
-(id)initWithName:(NSString *)name Age:(int)age Gender:(NSString *)gender
{
//一句话,谁污染谁治理,父类要自己初始化自己的实例变量,子类继承的时候只需实现自己的实例变量
if (self=[super init]) //父类初始化父类的实例变量,自己的变量自己初始化
{
_name=name;
_age=age;
_gender=gender;
}
return self;
}
初始化注意事项:
第一步,调用父类的初始化方法,为继承过来的变量赋初值
第二步,为自己独有变量赋初值
第三步,返回对象
最后:便利构造器
便利构造器返回值id, 是类方法,以类名开头.
+(id)personWithName:(NSString *)name age:(int)age gender:(NSString *)gender
{
return [[Person alloc] initWithName:name Age:age Gender:gender];
}