zoukankan      html  css  js  c++  java
  • 认识 面向对象 之 上帝思想

    1、上帝的思想 ,什么是面向对象?

    面向对象是一门编程思想

    面向过程编程思想:

    • 面向过程编程思想: 核心是 “过程” 二字,过程指的是解决问题的步骤,即先干什么再干什么! 基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式。

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

      缺点: 牵一发而动全身,程序的可扩展性差。

      注意: 编程思想仅仅是一门思想,与任何的技术无关。

    • 面向对象编程思想: 注意: 要将自己当做一个上帝!!! 核心是 “对象” 二字,对象指的是 “特征与技能” 的结合体。 基于该编程思想编写程序,就好比在创造世界,一种 “上帝式” 的思维方式。

      优点: 可扩展性高。

      缺点: 编写程序的复杂程度比面向过程高。

    2、初始类和对象

    • 什么是类

      类指的是类型,类别。

      在两种角度去看待: - 现实世界中: - 先有一个个的对象,经过社会的文明发展,随之总结出类。

      对象是实际存在的,而类抽象产生的。

      在程序中: - 必须先有类,再通过“调用类,产生对象”。

       在python中,用变量表示特征,用函数表示技能,因而具有相同的特征和技能的一类事物就是‘类’, 
      
    • 如何定义类

      如何写类并产生对象: - 先从现实世界中通过一个个对象总结出类。 -

      然后再定义类,后调用类产生对象。

      类的定义:class  Person:  #class  类名:注意类名后面不要括号 
      
              类体
      
    • 对象的产生:

      调用类产生对象

      对象则是这一类事物中具体的一个

      类名 + () 调用类产生对象 类的名称空间在定义时产生,对象的名称空间在调用类时产生。

      调用类产生对象的过程称之为类的实例化,对象称之为类的一个实例。

    由对象来调用类内部的函数,称之为对象的绑定方法。

    类中数据属性(类中的变量): 类中属性是给对象使用的,对象引用类中的属性,指向的都是类中同一个内存地址。

    类中的方法(类中的函数): 类中的方法是给对象使用的,

    由不同的对象来调用就会将方法绑定给不同的对象, 并且会将对象当做第一个参数传入__init__

    类的两种作用:属性引用和实例化

    #属性引用
    class Person:
        role = '中国人'  #类属性----静态属性
        def walk(self):  #这里的函数叫做方法-----动态属性
            #注意:self必须写
            print('person is walking ...')
    print(Person.role) #查看类属性
    print(Person.walk) #查看类方法 , 用类名去调用方法名,打印出来的是内存地址
    #中国人
    #<function Person.walk at 0x000001D109431378>
    
    
    #实例化
    class Person:
        role = '中国人'
        def __init__(self,name,sex):
            self.name=name
            self.sex=sex
        def walk(self):
            print('person is walking')
    
    lt = Person('leiting',21) #实例化:类名(参数1,参数2)  类名()就等于在执行Person.__init__()
    print(lt.name)  #直接查看属性   对象名.属性名
    print(lt) #返回的是一个对象
    lt.walk()  #调用方法  ,对象名.方法()
    #leiting
    #<__main__.Person object at 0x000002C679CA84E0>
    #person is walking
    

    对象的两种作用:查看属性和调用方法

    • 对象名字的查找顺序

    1.对象.属性,会先找对象自己的。

    2.若对象没有,会去找类的。

    3.若类没有,则会报错。

    查看类与对象的名称空间 类.__dict__ 对象.__dict__

    print(People.__dict__)

    print(p_obj.__dict__)

    3、self

    类的实例化对象本身

    self:在实例化时自动将对象实例本身传给__init__的第一个参数

    你也可以给它起个别的名字,但是一般正常人都不会这么做,因为你改了别人就不认识了。

    注意:def  __init__(self):   这句话可以写也可以不写,只要有参数参进来的时候就必须得写
       def  方法名(self):这里的self必须得写
    
  • 相关阅读:
    listview item 动画
    android sqlite blob
    Python3 配置文件(configparser)(转载)
    python之字符串格式化(format)
    PHP模拟发送POST请求之一、HTTP协议头部解析
    用HTML/JS/PHP方式实现页面延时跳转
    用memoization优化递归算法[JS/PHP实现]
    开通博客,记录一下。
    SpringMvc Json LocalDateTime 互转,form urlencoded @ModelAttribute 转换
    Springdata mongodb 版本兼容 引起 Error [The 'cursor' option is required, except for aggregate with the explain argument
  • 原文地址:https://www.cnblogs.com/kai-/p/11928393.html
Copyright © 2011-2022 走看看