zoukankan      html  css  js  c++  java
  • 初识面向对象

    面向过程指的一切以事物的流程为核心,清楚列出解决问题的步骤。

    面向对象指的是要完成某些事物,不用自己去做,交给能够完成这个任务的功能模块(对象)去完成

    类的创建

    定义类

    class Cat  #定义类名

        color = ‘red’ 类的公共属性(数据属性)

        def eat(self,name):  #定义方法

           self.name = name  属性(是调用就是谁的)

            print(‘the cat is eating’)

    BlueCat = Cat( )#创建一个猫(对象)名叫蓝猫,同样的方式可以创建多个猫

    创建对象

      Cat() #对类进行调用就是创建对象,(创建时使用了一个新的内存,这个内存将来在保存属性,创建时里面就包含了方法)

    一般讲创建的对象赋值给某个变量(就是对象的引用指向一个变量)

    类与对象的关系 :相当于设计图纸(类)与通过设计图纸制造出来的实体的东西(对象)

    # 类中的代码在类定义阶段便会执行,自动产生的命名空间用来存放类的变量名与函数名,可以通过 类名.__dict__ 查看,以字典的形式存放数据属性和函数属性
    # 对象.方法 中的点是访问属性的语法,类中定义的名字,都是类的属性,在python 有两种属性,数据属性和函数属性,数据属性是共享,
    # ,函数属性是绑定给对象用的(eg: User.remove() >>>> 这个就是静态的数据类型绑定,
    # print(DBUtil.__dict__)
    #  打印如下:{'__module__': '__main__', 'gg': '我的天',
    #  '__init__': <function DBUtil.__init__ at 0x000000E1AB272AE8>,
    # 'test_connect': <function DBUtil.test_connect at 0x000000E1AB272E18>,
    #  'connect': <function DBUtil.connect at 0x000000E1AB272A60>,
    # '__dict__': <attribute '__dict__' of 'DBUtil' objects>,}
    #程序中类的用法
    # .:专门用来访问属性,本质操作的就是__dict__
    #DBUtil.gg = '我的天' 基本相当于字典操作中的DBUtil.__dict__['gg'] = '我的天'
    # del DBUtil.gg等于经典类的操作DBUtil.__dict__.pop('gg')
    #
    # class DBUtil:#对方法进行封装,将同一类的所有功能封装在一个类中, #例如将某个数据库的所有操作 定义为一个类
    #
    #     gg = '我的天'  # 数据属性,这个属性是共享的,无论是谁在调用这个属性,内存id 都是一样的
    #     def __init__(self, ip, username, password):# __init 下面可以有任何的代码但是不能有返回值
    #         # 这里就是封装,self里面就是一个对象的引用,对属性进行封装,方面类中的各个方法进行调用
    #         self.ip = ip
    #         self.username = username
    #         self.password = password
    #
    #     # 对功能的封装
    #     def test_connect(self):# 函数属性  #   谁调用的是这个方法,这个self就是谁
    #         pass
    #
    #     def connect(self):
    #         pass
    #
    # class SQLDBUtil(DBUtil): #这里是单继承,在创建的子类的时候在括号内填入父类的名称就可以,如果是
    #     # 多继承的话,可以在括号内填入多个父类的类的名称,按照就近的原则,在子类继承的时候,最先查找的是()括号内的第一个父类
    # 如果第一个没有的话,才会继续查找第二个参数的父类,一次类推eg: class son(father1,father2,father3) 从左往右查找
    #
    #     def add(self):
    #         pass
    #
    #     def upd(self):
    #         pass
    #
    # print(DBUtil.__dict__)
    # User = DBUtil('192.168.1.1','pzw','Abc')
    # 无论是查找方法还是属性,都是先从自己的命名空间开始查找,如果找不到的话,才会向上级的命名空间去查找
    
    # 在创建对象的一瞬间就会系统自动调用__ew__这个构造方法,创建在内存中开辟一个空间,创建一个空对象,之后触发__init_,将创建该对象的引用以实参的方式传递给__init__方法中的self,
    __init__对对象进行初始化,
    #执行完初始化的方法之后,执行赋值的操作, #将创建对象后的引用赋值给相关的变量
  • 相关阅读:
    OpenGL——旋转的六边形(动画)
    OpenGL——三维多面体实现
    OpenGL——二维几何变换
    OpenGL——圆公式相关变化的绘制
    OpenGL——折线图柱状图饼图绘制
    图片相似原理--Java实现
    Service 保活法之二
    Service 保活法之一
    Android仿腾讯手机管家实现桌面悬浮窗小火箭发射的动画效果
    让应用在息屏后保活
  • 原文地址:https://www.cnblogs.com/vivi0403/p/9917465.html
Copyright © 2011-2022 走看看