self的用途:
1>概念:指向了当前对象(方法调用者)
2>可以利用“self->成员变量”访问当前对象内部的成员变量 ,如:self->_age;
3>[self 方法名];可以调用其他对象方法或类方法,如:[self test];
4>如果self出现在对象方法中,self就代表对象。如果出现在类方法中,就代表类
如:-(void)run
{
NSLog(@"人的体重是: %f",self->_weight); //self这里代表对象,self->_weight访问成员变量
}
继承的使用:
继承的好处:1.抽取重复代码
2.建立类之间的关系
3.子类可以拥有父类中的所有的变量和方法
如:创建了Person和student这两个类,student是Person的子类,那么student继承了Person所有的变量和方法
继承使用的注意点:
1>基本上所有的类的根类是:NSObject,不允许子类和父类拥有相同的名称的成员变量
如:父类中Person
@interface Person: NSObject
{
int _age;
}
@end
子类中Student
@interface Student : Person
{
int _age; //这样是不允许的,子类和父类成员变量名称相同
}
@end
重写:子类重新实现父类的某个方法,覆盖父类以前的做法
2>父类必须声明在子类的前面
3>调用某个方法时优先去当前的类找,如果找不到就去父类去找
继承的使用场合:
1.当两个类拥有相同的属性和方法的时候,就可以将相同的东西抽取相同的东西到一个类中
2.当A类完全拥有B类的部分属性和方法,可以考虑让B类继承A类
组合:
组合和继承的区别:继承就是:xxx是xxx,组合:xxx拥有xxx
如:继承Student是Person,组合Student拥有分数
例子是组合:
@interface Score: NSObect
{
int _cScore;
int _ocScore;
}
@interface Student: NSObjest
{
Score *Score; //组合,让Student这个类拥有Score这个类所有东西
int _age;
}