您的位置:首页 > 职场人生

黑马程序员 --- OC中的类

2015-08-23 20:42 267 查看
OC中的类

OC是在C语言的基础上,增加了一层最小的面向对象语法,并且完全兼容C语言,所以OC具有类的功能。
 OC中的类跟其他面向对象语言的类一样,都有自己的属性和方法,只是OC中方法跟其他语言不一样,对象方法前面加一个-,如:-(void)setAge( NSInteger *)age;如果是类方法就是加一个+,如:+(void)setAge:( NSInteger *)age;OC中类方法和对象方法可以同名,调用时类方法是通过类进行调用,对象方法是通过对象进行调用。
还都有三大特性:封装,继承和多态;1.我们先说继承吧,OC中继承只能单继承,就是只能有一个父类,继承父类的所有一切非私有的东西,OC中子类可以对父类的方法重写,因为OC中的方法都是虚方法,但是不能对父类的变量进行声明,除非是父类的私有成员变量;2.封装:隐藏属性,方法与方法实现细节的过程,就是一个类中的属性不能被外界所轻易改变,设置成私有的,只提供方法接口供他们调用,还有就是一个方法实现一个功能时,只提供外界接口,别人不知道你是怎么去实现这个接口功能的;3.多态:不同类中有同一接口名称,并且不同对象调用该接口去完成不同功能。

OC类中有声明部分和实现部分分别在不同文件下,这个跟C语言一样,在Dog.h中声明类的成员变量和方法,如:

#import <Foundation/Foundation>
@interface Dog :NSObject
{
@private
NSString *_name;
}
-(void)setName:(NSString *)name;
@end


在Dog.m中实现类中的方法,如:
#import "Dog.h"
@implementation Dog
-(void)setName:(NSString *)name
{
_name = name;
}
@end


OC中类的使用很方便,不像其他面向对象语言写类方法,需要加前缀static等,而且OC中方法都是虚方法,子类中不用加前缀直接重写父类方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class objective-c