下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

你知道OOP是面向对象程序设计吗?

作者:课课家教育     来源: http://www.kokojia.com点击数:1017发布时间: 2016-08-07 09:00:21

标签: OOP面向对象程序设计面向对象OOP的基本特征

大神带你学编程,欢迎选课

  在我们学习C++或java的时候总会听到说这两个是面向对象编程语言。我们也对面向对象的概念有所了解。但是你知不知道OOP就是面向对象程序设计呢?你又真的了解面向对象吗?下面我们一起了解一下什么是OOP以及面向对象程序设计的基本特征。

   OOP

   OOP(Object Oriented Programming)面向对象程序设计,它是一种计算机编程架构。它比最初的面向过程程序设计降低了难度,使编程变得简单,而且如今的大多数编程都是面向对象编程。

   OOP中的一条原则是:一个计算机程序是由一个个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性以及扩展性。

   OOP中的概念主要有包括有:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。

   对象(Object)——什么是对象,简单来说世界上所有的东西都可以看作对象。你可以使对象完成一些东西,而一个对象必须有三种属性:状态、行为以及标识。

   (class) —— 一个共享相同结构和行为的对象的集合。换句话说,类就是对事物的描述,而上文中的对象就是这种事物,而类中包含这类事物的特性以及行为。

   封装(encapsulation)——第一层的意思是将数据以及操作捆绑在一起,创造出一个新的类型。第二层意思就是将揭开与实现进行分类的过程。

   继承——继承描述了类之间的“是一种”关系。子类可以对基类的行为进行扩展、覆盖、重定义。话句话说就是,一个类可以通过继承获得另一个类的所有方法,并且这个类还可以自行定义自身的方法。

   组合——在类中和对象中都有的关系,在这种关系中一个对象或者类包含了其他的对象和类。组合描述了“有”关系。

   多态性——就是说允许不同类中的对象可以对同一信息作出响应。不同类中的对象可以使用使用同一个名称,因此这个名称表示的任何对象可以以不同的方式响应一些共同的操作集合。

   动态绑定——意思是直到运行的时候才直到一个对象或者表达式的类型,通常有编译器插入特殊的代码来实现。

   静态绑定——和动态对象相反,这就很好理解了。指的是一个对象或表达式的类型在编译的时候就已经被确实了。

   消息传递——一个对象调用另一个对象的方法。

   方法——也被称为成员函数,方法是对象上的操作。

  面向对象的优点

   1)开发时间短,效率高,可靠性好。

   2)可重用性,可以在编程时直接使用大量成熟的类库,减少开发时间。

   3)应用程序容易维护、更新以及升级。

   4)继承和封装使得应用程序的修改的影响更加局部化。

  面向对象的基本特征

OOP面向对象程序设计概述_OOP_面向对象程序设计_面向对象_OOP的基本特征_课课家

   抽象

    简单来说就是把一个主题中与你的目标无关的东西给去掉,然后你就可以更加专注于与目标有关的方面。打个比方:如果你要设计一个业务管理系统,你先要关注的是业绩、姓名、性别。而例如身高体重这些信息就不用去关心。

    而抽象也被分为两种:

   第一种是过程抽象,就是说不管一个操作是否由一些低级的操作完成,只要这个操作是被名确定义的们就可以被使用者看作是单个实体。

   第二种是数据抽象,定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。

   封装

    这个是对象和类概念的主要特征。封装就是把客观事物包装成抽象的类,而且这个类可以把自己的数据以及方法隐藏起来,只能通过接口进行访问。换句话说,在这个类中的对象受到一个接口的保护,只有通过这个接口才能访问其他对象。一旦定义了一个对象的特性就要决定这些特性的可见性。也就是决定哪些特性是对外界是可见的,哪些只能表示内部的状态。而通过接口来访问对象这被称为信息隐藏。

    实际上,信息隐藏式用户对封装性的认识而且封装为信息隐藏提供了支持。而且封装保证了类具有较好的对立性,使得程序的维护更加容易。因为对应用程序的修改仅限于类的内部,所以可以将应用程序修改带来的影响减少到最低。

   继承

java中继承的关系

    继承允许和鼓励类的重用,并且提供了一种明确表述共性的方法。

    继承是OOP中的一个重要特性。继承就是对象的一个新类可以从现有类中进行派生。而这个新类继承了原始类的所有公有功能以及属性,而原始类也叫做新类的父类。话句话说就是它可以让程序员创建新的类的时候使用现有类的所有功能,以及可以在不用修改原有类的情况下对这些功能进行扩展,或者进行方法的增加。这样就可以满足一些特殊的要求。

    继承性很好的解决了软件的可重用性问题。打个比方:所有的Windows程序都有一个窗口,它们可以看作是由一个窗口类派生出来的。但是有一些应用程序的窗口用于文字处理,一些应用程序的窗口用于绘图。这就可以看作是窗口派生了不同的子类窗口,并在每一个子类窗口中添加了新的特性。

   多态性

    上文中也有对多态性进行了解,多态性就是允许不同类中的对象可以对同一信息做出响应。打个比方:我有一个开始的指令,这个指令可以既可以使跑步的人开始也可以让考试的人开始。由于多态性语言具有灵活、抽象以及行为共享、代码共享等优势,所以很好的解决了应用程序函数的同名问题。

       总的来说,OOP只是一种思想,它强调对象的“抽象”、“封装”、“继承”、“多态”。而这种思想现在被广泛的采用,成为了现在的一种潮流一般。很多的编程语言都运用了面向对象的程序设计思想。例如C++和java都是面向对象编程语言,所以深入了解OOP只有好处没有坏处。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程