Python从设计之初就已经是一门面向对象的语言了,正因如此,在Python中创建一个类和对象是很容易的。

什么是面向对象?

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

  类(class):

  定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的行为。比如拿人来说,人类是一个类,黄种人、白种人和黑人;男人和女人,都具有人类的特征或行为,比如身高、体重、肤色、吃饭、睡觉、生老病死等等。一个类中可以有成员函数和成员变量。在面向对象的术语中,成员函数被称为方法;成员变量被称为属性。

  对象(object):

  是类的实例。当一个类被实例化时,他的属性就有了具体的值(比如,人类是一个类,具体到某一个人的时候,他就有具体的身高、体重、肤色等)。每个类可以有若干个可以被实例化的对象。在操作系统中,系统给对象分配内存空间,而不会给类分配内存空间。

  继承(inheritance):

  是指通过一个已有的类(父类)定义另外一个类(子类),子类共享父类开放的属性和方法。子类的对象除了是一个子类的一个实例,还是其父类的一个实例。举个例子:人类做为父类,实例化一个子类黄种人,黄种人(子类)实例化一个对象中国人。中国人除了是黄种人(子类)的一个实例,也是人类(父类)的一个实例。

  封装性(Encapsulation):

  封装性是指类在定义时可以将不能活不需要其他类知道的成员定义成私有成员,而只公开其他类需要使用的成员,以达到信息隐蔽和简化的作用。比如:通过眼睛观察我们可以大概知道其他人的肤色、性别等等,但是比如血型、DNA等等是无法直接得知的。

  多态性(Polymorphism):

  是指同一方法作用于不同的对象,可以有不同的解释,产生不同的执行结果。在具体实现方法上,多态性是允许开发者将父对象的变量设置为对子对象的引用,赋值之后,父对象变量就可以根据当前的赋值给他的子对象的特性以不同的方式运作。比如:黄种人和白种人还有黑种人都属于人类,但是其肤色属性是不一样的(赋值不同)。

  

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

Python-面向对象编程01_什么是面向对象的更多相关文章

  1. [.net 面向对象编程基础] (2) 关于面向对象编程

    [.net 面向对象编程基础]  (2)  关于面向对象编程 首先是,面向对象编程英文 Object-Oriented Programming 简称 OOP 通俗来说,就是 针对对象编程的意思 那么问 ...

  2. 洗礼灵魂,修炼python(31)--面向对象编程(1)—面向对象,对象,类的了解

    面向对象 1.什么是面向对象 (图片来自网络) 哈哈,当然不是图中的意思. 1).面向对象(Object Oriented,OO)是软件开发方法.利用各大搜索引擎得到的解释都太官方,完全看不懂啥意思对 ...

  3. C++基础——C面向过程与C++面向对象编程01_圆面积求解

    #include "iostream";//包含C++的头文件using namespace std;//使用命名空间std标准的命名空间(在这个命名空间中定义了很多标准定义)vo ...

  4. python核心编程学习记录之面向对象编程

    未完待续525

  5. 进击的Python【第六章】:Python的高级应用(三)面向对象编程

    Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...

  6. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  7. 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)

    面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含 ...

  8. python面向对象编程 -- 封装、继承

    面向对象编程 -- 封装.继承 面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外 ...

  9. python面向对象编程学习

    python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...

随机推荐

  1. MySQL的安装和基本管理

    ---恢复内容开始--- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle(甲骨文)旗下公司.MySQL最流行的关系型数据库管理系统.在web应用方面MySQ ...

  2. thymeleaf switch在表格中的使用,遇到的空行问题

    switch在表格中的使用时 如果把<td>写在<div th:switch="${data.isShow}"> 里面导致外面出现很多空的<div&g ...

  3. wkhtmktopdf

    1: sudo apt-get install wkhtmltopdf   2: sudo apt-get xvfb   3: 切换到root用户: echo 'xvfb-run --server-a ...

  4. 在php中设置PHPSESSID的httponly属性

    ThinkPHP3.0完全开发手册 19.1 Session: 支持默认情况下,初始化之后系统会自动启动session. 如果不希望系统自动启动session的话,可以设置SESSION_AUTO_S ...

  5. jmeter4.0脚本录制

     Jmeter录制脚本有两种方式.1.通过第三方工具录制比如:Badboy,然后转化为jmeter可用的脚本:2.使用jmeter本身自带的录制脚本功能. 本次使用jmeter本身自带的录制脚本功能 ...

  6. [转] 基于C#的波形显示控件的实现

    转自 基于C#的波形显示控件的实现[附完整源码下载] 编者记: 09年暑假正好在学院实验室呆了一段时间,做了个完整的上位机软件(具体实现:根据下位机的指令,实现通过串口来操纵下位机进行实验,并将采集的 ...

  7. c++builder自定义控件

    c++builder自定义控件 http://docwiki.embarcadero.com/CodeExamples/XE8/en/RegisterComponents_%28C%2B%2B%29 ...

  8. java创建TXT文件并进行读、写、修改操作

    import java.io.*; /**  *   * 功能描述:创建TXT文件并进行读.写.修改操作  *        * @author <a href="mailto:zha ...

  9. Linux实战教学笔记52:GlusterFS分布式存储系统

    一,分布式文件系统理论基础 1.1 分布式文件系统出现 计算机通过文件系统管理,存储数据,而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量 ...

  10. JAVA中集合转数组遍历

    JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray(). 代码: public static void main(String[] args) {     ...