黑马程序员 --- 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中声明类的成员变量和方法,如:
在Dog.m中实现类中的方法,如:
OC中类的使用很方便,不像其他面向对象语言写类方法,需要加前缀static等,而且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中方法都是虚方法,子类中不用加前缀直接重写父类方法。
相关文章推荐
- Android Native 绘图方法
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 深入了解PHP类Class的概念
- setAttribute 与 class冲突解决
- JavaScript中的类(Class)详细介绍
- javascript面向对象包装类Class封装类库剖析
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- JavaScript更改class和id的方法
- 一篇入门的php Class 文章
- 深入C++中struct与class的区别分析
- js中设置元素class的三种方法小结
- c++中typename和class的区别介绍
- Objective-C的内省(Introspection)用法小结
- php class类的用法详细总结
- Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法
- JavaScript跨浏览器获取页面中相同class节点的方法
- js实现class样式的修改、添加及删除的方法