zoukankan      html  css  js  c++  java
  • 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自带多态

  • 相关阅读:
    Android四大图片缓存(Imageloader,Picasso,Glide,Fresco)原理、特性对比
    Android系统更改状态栏字体颜色
    Zookeeper使用--命令行
    Zookeeper配置文件
    Zookeeper到底是干嘛的
    shell脚本学习之参数传递
    zabbix3.4.7之Zabbix_Trigger_Function详解
    zabbix3.4.7主动模式监控日志(多关键字)
    linux下grep命令详解
    一些不好理解的名词解释
  • 原文地址:https://www.cnblogs.com/alvin-jie/p/9917669.html
Copyright © 2011-2022 走看看