Python基础16_初识面向对象

 一. 面向对象和面向过程
    1. 面向过程: 一切以实物的流程为中心,核心是"过程二字", 过程是指解决问题的步骤
    优点: 负责的问题流程化, 编写相对简单
    缺点: 可扩展性差
    2. 面向对象: 一切以对象为中心
    具有相同属性和动作的结合体叫对象, 面向对象思维, 要自己建立对象, 自己建立场景
    优点: 可扩展性强
    缺点: 编程的复杂性高于面向过程
二. 面向对象如何编写
    举例: 创建一个猫类
    class Cat:                                        # 创建一个猫类
        def __init__(self, name, age, color):        # 初始化方法, 又称为构造方法
            self.name = name                        # 名字属性
            self.age = age                            # 年龄属性
            self.color = color                        # 颜色属性
        def eat(self):                                # 定义猫类吃的方法
            print("吃鱼")                        
        def run(self):                                # 定义猫类跑的方法
            print("四只腿跑")
    c1 = Cat("加菲猫", "5", "花")                    # 创建c1对象, 又称为实例化
    print(c1.name)                                            # 访问对象的属性信息
    c1.eat()                                        # 访问类中的方法
    c2 = Cat("TOM", "3", "灰")                        # 创建c2对象
    
    类和对象的关系: 
    类是对事物的总结, 抽象的概念, 类用来描述对象
    对象是类的实例化的结果, 对象能执行哪些方法, 都由类来决定, 类中定义了什么, 对象就拥有什么
三. 面向对象和面向过程的比较
    如果写一些比较小的程序用面向过程
    当程序很复杂, 很庞大用面向对象
四. 面向对象三大特征: 封装, 继承, 多态
    1. 封装: 把很多数据封装到一个对象中, 把固定功能的代码封装到一个代码块, 函数, 对象, 打包成模块,这都属于封装的思想. 在面向对象思想中, 把一些看似无关紧要的内容组合到一起统一进行存储和使用, 这就是封装.
    2. 继承: 继承指的是类与类之间的关系, 继承的功能之一即是解决代码的重用问题.
    def ParentClass1:
        pass
    def ParentClass2:
        pass
    class SubClass1(ParentClass1):
        pass
    class SubClass2(ParentClass2):
        pass
    当出现xxx是yyy类型的一种的时候, 可以使用继承关系
    子类自动继承父类除了私有内容以外其他所有的内容 
    python支持多继承, 用逗号分隔开多个继承的类
    类中方法的查询顺序: 先找自己, 然后再找父类
    方法的覆盖(重写): 子类中有和父类中一样的方法
    3. 多态
    多态: 一类事物有多种形态
    好处: 程序具有超高的可扩展性, 面向对象思想的核心与灵魂, python中自带多态
    
    

原文地址:https://www.cnblogs.com/guyannanfei/p/10134230.html