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

来源:互联网 发布:修改网页内容软件 编辑:程序博客网 时间:2024/05/04 00:17
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中方法都是虚方法,子类中不用加前缀直接重写父类方法。
0 0
原创粉丝点击