Python-面向对象编程01_什么是面向对象
Python从设计之初就已经是一门面向对象的语言了,正因如此,在Python中创建一个类和对象是很容易的。
什么是面向对象?
面向对象程序设计(Object-oriented programming,OOP)是一种程序设计范型,也是一种程序开发方法。对象指的是类的实例,类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫作类的实例化。面向对象程序设计将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象编程中的主要概念如下:
类(class):
定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的行为。比如拿人来说,人类是一个类,黄种人、白种人和黑人;男人和女人,都具有人类的特征或行为,比如身高、体重、肤色、吃饭、睡觉、生老病死等等。一个类中可以有成员函数和成员变量。在面向对象的术语中,成员函数被称为方法;成员变量被称为属性。
对象(object):
是类的实例。当一个类被实例化时,他的属性就有了具体的值(比如,人类是一个类,具体到某一个人的时候,他就有具体的身高、体重、肤色等)。每个类可以有若干个可以被实例化的对象。在操作系统中,系统给对象分配内存空间,而不会给类分配内存空间。
继承(inheritance):
是指通过一个已有的类(父类)定义另外一个类(子类),子类共享父类开放的属性和方法。子类的对象除了是一个子类的一个实例,还是其父类的一个实例。举个例子:人类做为父类,实例化一个子类黄种人,黄种人(子类)实例化一个对象中国人。中国人除了是黄种人(子类)的一个实例,也是人类(父类)的一个实例。
封装性(Encapsulation):
封装性是指类在定义时可以将不能活不需要其他类知道的成员定义成私有成员,而只公开其他类需要使用的成员,以达到信息隐蔽和简化的作用。比如:通过眼睛观察我们可以大概知道其他人的肤色、性别等等,但是比如血型、DNA等等是无法直接得知的。
多态性(Polymorphism):
是指同一方法作用于不同的对象,可以有不同的解释,产生不同的执行结果。在具体实现方法上,多态性是允许开发者将父对象的变量设置为对子对象的引用,赋值之后,父对象变量就可以根据当前的赋值给他的子对象的特性以不同的方式运作。比如:黄种人和白种人还有黑种人都属于人类,但是其肤色属性是不一样的(赋值不同)。
随着面向对象编程(OPP)的普及,面向对象程序设计(OOD)也只日臻成熟,形成了以UML(Unified Modieling Language)为代表的标准建模语言。UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供了模型化和可视化支持,包括由需求分析到规格,再到构造和配置的所有阶段。