什么是面向对象?
面向对象程序设计(Object Oriented Programming,OOP)是一种程序设计范型,也是一种
程序开发方法。对象指的是类的实例,类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫作类的实例化。面向对象程序设计将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象编程中的主要概念如下。

  • 类(class): 定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的行为。举例来说,设计一个电子画板程序中的“Figure”类,它包含二维图形的一切基本特征,即所有二维图形共有的特征或行为,例如它的制作者、颜色、是否实心等。类可以为程序提供模板和结构。一个类中可以有成员函数和成员变量。在面向对象的术语中,成员函数被称为方法;成员变量被称为属性。

  • 对象(object): 是类的实例。例如,“Figure”类定义了图形的概念,而在电子画板程序中画出一个图形时,则是建立了一个Figure类的实例,即对象。当一个类被实例化时,它的属性就有了具体的值,比如该图形有了作者、某种具体的颜色。每个类可以有若干个被实例化的对象。在操作系统中,系统给对象分配内存空间,而不会给类分配内存空间。

  • 继承(inheritance): 是指通过一个已有的类(父类)定义另外一个类(子类),子类共享父类开放的属性和方法。子类的对象不仅是子类的一个实例,而且是其父类的一个实例。比如,可以从图形父类Figure继承并定义一个方形子类Rectangle,它具备Figure类的一切特征,并具备自己的独有特征,比如长度、宽度。在画板上画出一个方形实例时,它就是一个Rectangle,也是一个Figure。

  • 封装性(Encapsulation): 是指类在定义时可以将不能或不需要其他类知道的成员定义成私有成员,而只公开其他类需要使用的成员,以达到信息隐蔽和简化的作用。在画板程序的Figure类中,可以定义Move方法为公开成员,而Move方法需要调用的其他成员(clear、paintline、paint color等)可以定义为私有成员。

  • 多态性(Polymorphism): 是指同一方法作用于不同的对象,可以有不同的解释,产生不同的执行结果。在具体实现方式上,多态性是允许开发者将父对象的变量设置为对子对象的引用,赋值之后,父对象变量就可以根据当前的赋值给它的子对象的特性以不同的方式运作。比如设计两个Figure的子类圆形Circle和方形Rectangle,两个子类的绘制(Paint)实现方法肯定不相同,因此当用父对象变量分别引用并调用两个子对象的Paint 方法时会产生不同的效果。

随着面向对象编程的普及,面向对象设计(Object Oriented Design,00D)也日臻成熟,形成了以UML(Unified Modeling Language)为代表的标准建模语言。UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供了模型化和可视化支持,包括由需求分析到规格,再到构造和配置的所有阶段。

0条评论

相关推荐

Python函数

在编程中使用函数可以写出优雅的程序结构,模块化的结构使程序简单化,并提高了...

入门教程 2019-05-20 15:12:29

Python综述

Python是一种可以撰写跨平台应用程序的面向对象程序设计语言,它具有卓越...

入门教程 2019-05-21 09:33:16

Python异常

异常处理是编程语言中的一种机制,用于处理软件或信息系统中出现的异常状况(即...

入门教程 2019-05-20 17:20:26

Python基本数据类型

顾名思义,计算机就是用来处理各种各样的数据的机器,这些数据可能包括:数字,...

入门教程 2019-05-17 14:51:54

流程控制

流程控制语句用来实现对程序流程的选择、循环和返回等进行控制。Python中...

入门教程 2019-05-20 11:17:04