————————java培训、Andoroid培训、IOS培训、.Net培训、期待与您交流!————————
面向对象3大特性:封装、继承、多态
僵尸,跳跃僵尸类的简单设计
#import <Foundation/Foundation.h>
@interface Score : NSObject
{
/*
成员变量的命名规范:一定要以下划线_开头
作用:让成员变量和get方法的名称区分开
可以跟局部变量区分开
*/
int _cScore;//c语言成绩
int _ocScore;//OC成绩
int _totalScore;//总分
int _averageScore;//平均分
}
- (void)setCScore:(int)cScore;
- (void)setOCScore:(int)ocScore;
- (int)cScore;
- (int)ocScore;
- (int)totalScore;
- (int)averageScore;
@end
@implementation Score
- (void)setCScore:(int)cScore
{
_cScore=cScore;
_totalScore=_ocScore+_cScore;
_averageScore=_totalScore/2;
}
- (int)cScore
{
return _cScore;
}
- (void)setOCScore:(int)ocScore
{
_ocScore=ocScore;
_totalScore=_ocScore+_cScore;
_averageScore=_totalScore/2;
}
- (int)ocScore
{
return _ocSc ore;
}
- (int)totalScore
{
return _totalScore;
}
- (int)averageScore
{
return _averageScore;
}
@end
int main()
{
Score *s=[Score new];
[s setCScore:100];
[s setOCScore:80];
NSLog(@"总分=%d,平均分=%d",[s totalScore],[s averageScore]);
return 1;
}
对象方法和类方法区别
对象方法:以-开头
只能由对象来调用
对象方法中能访问当前对象的成员变量
类方法:以+开头
只能有类名来调用
类方法中不能访问成员变量
类方法的好处和使用场合
不依赖于对象,执行效率高
能用类方法尽量使用类名
当方法内部不实用到成员变量时,就可以用类方法
self
self处在对象方法中就调用当前对象的对方方法
self处在类方法中就调用当前类的对方方法
继承
继承的好处
1.抽取重复代码
2.建立了类之间的关系
3.子类可以拥有父类所有成员变量和方法
不允许父类和子类有相同的成员变量
重写:子类重新实现父类的某个方法,覆盖父类以前的做法
父类必须声明在子类的前面
调用某个对象方法,优先到当前对象中找,若果找不到,则去父类中找
坏处:耦合性太强
继承的使用场合:
当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中
当A类拥有B类的部分属性和方法时,可以考虑让B类继承A类
继承:xx是xx
组合:xx拥有xx
super的作用
1.直接调用父类中的某个方法
2.super处在对象方法中,那么就调用父类的对象方法
super处在类方法中,就会调用父类的类方法
使用场合:
子类重写父类的方法,还想运用父类的一些行为