python之路6:面向对象编程基础
- 面向对象编程介绍
- 面向对象的特性:封装、继承、多态
- 应用场景
面向对象编程介绍
编程范式
编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式。 两种最重要的编程范式分别是面向过程编程和面向对象编程。
面向过程编程
面向过程编程就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。
面向对象编程
面向对象编程就是对 “类” 和 “对象” 的使用。
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能。
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数。
- class是关键字,表示类
- 创建对象,类名称后加括号即可
面向对象 VS 面向过程
- 面向对象:【创建对象】【通过对象执行方法】
- 面向过程:【执行函数】
面向对象的特性:封装、继承、多态
封装:在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。
继承:一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。
多态:简单点说:“一个接口,多种实现”,指一个基类中派生出了不同的子类,且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。
1 # -*- coding:utf-8 -*- 2 __author__ = 'BillyLV' 3 4 class province(object):#class是关键字,表示类;province类名;object新式类写法 5 def cn(self): 6 print('cn代表中国') 7 8 class role(province):#role继承父类province 9 def __init__(self,name):#构造方法,用来做一些初始化或共同的属性操作 10 self.NAME = name 11 def speak(self):#类方法 12 print(self.NAME,'is speak') 13 def eat(self,food):#self就是对象实例本身 14 print('%s is eating %s'%(self.NAME,food)) 15 16 class role1(province): 17 def speak(self): 18 print('role1 is speak') 19 20 def func(obj):#一个接口,多种形态 21 obj.speak() 22 23 person1=role('a')#创建对象,类实例化 24 person2=role('b')#封装到对象person2 25 26 person1.speak() 27 person2.speak()#通过对象直接调用被封装的内容 28 print(person2.NAME)#通过self间接调用被封装的内容 29 person2.eat('apple') 30 31 person1.cn()#执行从父类中继承的方法 32 person2.cn() 33 34 person3=role1() 35 person3.cn() 36 func(person1)#多态输出 37 func(person2) 38 func(person3)
应用场景
面向过程:各个函数之间是独立且无共用的数据。
面向对象:1. 多函数需使用共同的值,如:数据库的增、删、改、查操作都需要连接数据库名、主机名、用户名和密码。2. 需要创建多个事物,每个事物属性个数相同,但是值的需求如:张三、李四、杨五,他们都有姓名、年龄、血型,但其值都是不相同。即:属性个数相同,但值不相同。
参考:
http://www.cnblogs.com/alex3714
http://www.cnblogs.com/wupeiqi
internet&python books
PS:如侵权,联我删。