您的位置:首页 > 编程语言 > C语言/C++

oc语言--面向对象的三大特性

2015-01-24 15:42 162 查看

一、封装

1.什么是封装

在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

1> set方法

  ① 作用:提供一个方法给外界设置成员变量值,实现对参数的相应过滤

  ② 命名规范

   *方法名必须以set开头

   *set后面跟上成员变量的名称,成员变量名首字母必须大写

   *返回值一定是void

   *一定要接收一个参数,而且参数类型跟成员变量类型一致

   *形参的名称不能跟成员变量名一样

#import <Foundation.Foundation.h>

@interface Animal : NSObject
- (void)eat;
@end

@implementation Animal
- (void)eat
{
NSlog(@"动物吃东西");
}
@end

@interface Dog : Animal
- (void)eat;
@end

@implementation Dog
- (void)eat
{
NSlog(@"Dog吃东西");
}
@end

int main()
{
//多种形态
Dog *d = [Dog new];// Dog类型

//多态;父类指针指向子类对象
Animal *a = [Dog new];

[a eat];//调用方法时,检测对象的真实类型

rerurn 0;
}


多态(例子)

2.优缺点

1> 好处:如果函数\方法的参数类型使用的父类类型,可以传入子类和父类对象

2> 局限性:父类类型变量不能够直接调用子类特有的方法(编译过程会有警告)。必须强转为子类类型便后后,才能够直接调用子类特有的方法。

四、自我总结

  面向对象的三大特性是面向对象语言的精华所在。面向对象是基于万物皆对象这个哲学观点。把一个对象抽象成类,具体上就是把一个对象的静态特征和动态特征抽象成相应的属性和方法,也就是把一类事物的算法和数据结构封装在一个类之中,程序就是多个对象和互相之间的通信组成的。面向对象具有封装性,继承性,多态性,封装隐蔽了对象内部不需要暴露给外人的细节,使得内部细节的变动跟外界不相关,只单纯依靠提供的接口进行通信。封装性降低了编程的复杂,通过继承,使得新建一个类变得更加容易,一个类从父类那里获得其方法和属性的工作就交给了编译器。而继承、实现和运行时的类型绑定机制所产生的多态,使得不同的类所产生的对象能够对相同的消息作出不同的反应,这极大地提高了代码的通用性。言而总之,面向对象的三大特性大大提高了程序的重用性和可维护性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: