zoukankan      html  css  js  c++  java
  • 面向对象编程

    面向对象编程

    面向对象编程是一种程序设计思想

    面向对象编程和面向过程编码的区别

    面向过程编程

    面向过程编程:核心是过程二字,过程指的是解决问题的步骤,即先干什么后干什么。面向过程的设计就好比流水线,是一种机械式的思维方式。

    优点:复杂的问题流程化,进而简单化

    缺点:可扩展性差,不便修改

    面向对象编程

    面向对象编程:核心是对象二字,对象是属性和方法的结合体。面向对象的设计就好比上帝创造世界,存在的都是对象,不存在的也可以造出来。面向对象更加注重对现实世界的模拟,这与面向过程的机械式思维方式形成鲜明对比。

    优点:可扩展性强

    缺点:编写的复杂远远高于面向过程,不了解面向对象就设计程序,很容易出现设计过度的问题,很难预测到最终结果

    面向对象的程序设计并不是全部,对于一个软件质量来说,面向对象的程序设计只是用来解决扩展性的。

    类和对象

    类和对象是面向对象最重要的概念

    类:具有一系列相同属性和方法的对象的结合体,类就是类型

    对象:对象是属性和方法的结合体

    在现实世界中:先有对象再有类

    在python中:先有类再有对象,调用类来产生对象

    在python中,定义类是通过class关键字的,class 类名

    # 定义类尽量使用驼峰体
    class Student():
    	pass
    

    获取属性和方式是通过 . 来获取的

    1. 类获取属性和方法
      1. 类.__dict__
    2. 类来调用属性和方法
      1. 通过dict取(复杂,不适用)
      2. 类名.属性/函数

    对象

    调用类就可以产生对象,调用类的过程,又叫做类的实例化,实例化产生的结果称为类的对象/实例。具体的方式是类名加括号就可以生成对象

    class Student():
        pass
    
    stu1 = Student()
    

    获取属性和方式是通过 . 来获取的

    1. 对象获取属性和方法

      1. 对象.__dict__
    2. 对象来调用属性和方法

      1. 对象.属性/方法(对象调用方法,第一个参数不用传值)

    给对象赋值

    对象可以自己添加属性和方法,但是当对象本身没有属性和方法,对象可以去调用类里面的属性和方法。

    我们有两种方式可以给对象添加属性和方法。

    方式一:直接用对象点出我们需要的添加的属性或方法(方法要先写好函数),然后进行赋值

    class Student:
        school = 'oldboy'
        def study(self):
            print('学习...')
    
    stu1 = Student()
    stu1.name = 'xiaowu'
    print(stu1.name)
    
    # xiaowu
    

    方式二:通过__init__方法

    class Student:
        school = 'oldboy'
        def __init__(self, name):
            self.name = name
        def study(self):
            print('学习...')
    
    stu1 = Student('xiaowu')
    print(stu1.name)
    
    # xiaowu
    

    在类中定义__init__方法,方法内写一些参数

    当我们在实例化产生对象的时候,括号内传的值会内传到__init__方法中,完成对象的初始化

    属性的查找顺序

    先从对象自身找--->再到类中找--->报错

    绑定方法

    定义在函数内部的方法:

    如果类来调用,就是一个普通的函数,有几个参数就需要传入几个参数

    如果对象来调用,就叫做对象的绑定方法,第一个参数(self)不需要传,会自动传递对象本身

    一切皆对象

    在python中,一切都是对象,如字典、列表、字符串等等

    类就是类型,类实例化会产生对象,对象调用对象的绑定方法(内置方法),可以修改对象自己

  • 相关阅读:
    golang-----giao起来
    Django-----你醒了吗?
    linux
    dapper之连接数据库(Oracle,SQL Server,MySql)
    mongodb 物理删除数据
    一生难得的偶遇
    奇怪的电话
    我的魔兽争霸
    第四章 吃饭
    第三章 百花谷
  • 原文地址:https://www.cnblogs.com/yunluo/p/11414992.html
Copyright © 2011-2022 走看看