python之路-day15-初识面向对象

初识面向对象
一、面向对象和面向过程(重点理解)
1、面向过程:
一切以事物的流程为核心。核心是"过程"二字,过程是指解决问题的步骤。
即,先干什么,后干什么。基于该思想编写程序就好比在编写一套流水线。是一种机械式的
编程思维。
优点:负责问题流程化,编写相对简单
缺点:可扩展性差

2、面向对象:一切以对象为中心
具有相同属性和动作的结合体叫对象。面向对象的思维,要自己建立对象。自己建立场景。
你就是面向对象世界中的上帝
优点:可扩展性强
缺点:编程的复杂度高于面向过程

二、面向对象如何编写
类名首字母大写.
class Computer:

# 构造方法. 在创建的对象的时候由系统自动访问这个方法
# self: 自己. 自身. 类的对象. 当前正在创建的对象
def __init__(self, pinpai, price, cpu, neicun): #
# 谁在调用, self就是谁, self 由python自动传递
self.pinpai = pinpai
self.price = price
self.cpu = cpu
self.neicun = neicun

# 方法. 该类型的对象能够执行哪些操作
def dayouxi(self, game): # 谁调用的这个方法. self就是谁
# 我用我的self.pinpai的调用. 利用很牛B的self.cpu来完成吃鸡操作
print("我要打游戏, 我要%s" % game)

c = Computer("微软",25000,"i9","5T") # 创建对象
c.dayouxi("吃鸡")

类与对象的关系:类是对事物的总结。抽象的概念,类用来描述对象。对象是类的实例化的
结果。对象能执行那些方法。都是由类来决定的。类中定义了什么,对象就拥有什么

三、面向对象的三大特征
面向对象三大特征:封装,继承,多态。只要是面向对象语言,都有这三个特征。
1、封装:把很多数据封装到一个对象中。把固定功能的代码封装到一个代码块,函数,
对象,打包成模块。这都是属于封装的思想。具体的情况具体分析。比如写了一个很好的
函数,那么这个也可以被称为封装。在面向对象思想中。是把一些看似无关紧要的内容组合
到一起统一进行存储和使用,这就是封装

2、继承:子类可以自动拥有父类中除了私有属性外的其他所有内容。在python中实现继承
非常简单。在声明类的时候,在类名后面添加一个小括号,就可以完成继承关系。那么什么
情况可以使用继承呢?单纯的从代码层面上来看。两个类具有相同的功能或者特征的时候。可以
采用继承的形式,提取一个父类,这个父类中编写着两个类相同的部分,然后两个类分别去继承
这个类就可以了。继承能避免写很多重复的功能和代码; 在python中,一个类可以同时继承多
个父类。继承顺序遵循MRO算法,后面再细讲。

3、多态: 同一个对象,多种形态。这个在python中其实很不容易说明白
# 在python中多态的效果感受不够明确
class YaoGuai:
def teng(self):
print("妖怪一定会疼")

class ZhiZhuJing(YaoGuai):
def teng(self):
print("蜘蛛精很痛")

class HeiXiongJing(YaoGuai):
def teng(self):
print("黑熊精也很疼")

class BaiGuJing(YaoGuai):
def teng(self):
print("白骨精骨头很疼")

class JinJiaoDaWang(YaoGuai):
def fangundeteng(self):
print("爆炸的疼")

class SunWuKong:
def da(self, yg):
yg.teng() # 只要包含了xxx功能的内容都可以试用. 鸭子模型 -> 多态性

多态的好处:程序具有超高的可扩展性。面向对象思想的核心和灵魂。python自带多态

posted @ 2018-11-06 20:10  wenjie^_^  阅读(97)  评论(0编辑  收藏  举报