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

  • 相关阅读:
    Balanced Binary Tree
    Swap Nodes in Pairs
    Reverse Nodes in k-Group
    Reverse Linked List II
    Remove Nth Node From End of List
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Partition List
    Merge Two Sorted Lists
    【Yii2.0】1.2 Apache检查配置文件语法
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10134230.html
Copyright © 2011-2022 走看看