一,了解继承

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];
}