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中自带多态
        
        

  • 相关阅读:
    转载:javaweb学习总结(八)——HttpServletResponse对象(二)
    转载:javaweb学习总结(七)——HttpServletResponse对象(一)
    转载:javaweb学习总结(六)——Servlet开发(二)
    转载:javaweb学习总结(五)——Servlet开发(一)
    转载:javaweb学习总结(四)——Http协议
    蓝桥杯 答题分数
    Saruman's Army (POJ 3069)
    Best Cow Line (POJ 3217)
    区间调度问题
    硬币问题
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10134230.html
Copyright © 2011-2022 走看看