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

    1,类的概念:具有相同特征的一类事物(人,狗,老虎).

    • 对象/实例的概念:具体类的表现,具体的实实在在的一个实例(类的具体化,对象具有类的属性)
    • 实例化:类----->对象的过程
    • 面向对象的程序设计的核心是对象,面向对象变成可以使程序维护和扩展把爱你的简单,并且可以大大提高程序开发效率,另外,基于面向对象的程序可以使人更加容易理解你的代码逻辑,从而使团队开发变得更从容.

    2,类的声明

    • class Person:.................定义一个人类(class)后边的字母手字母必须大写(固定格式)
    • 列如:class Person:
    • #类体:在类声明的里边(类似于函数名里边的函数体)叫做类体,类体有以下两部分构成:1>变量部分,如下<1>部分,2>方法函数部分,如下<2>部分所示.
    class Person:
        mind = "有思想的"  # <1>部分的变量函数又叫(静态变量,静态字段)
        animal = "高级动物"  # 
        faith = "有信仰"
        
    #    def __init__(self):  # <2>方法(函数)部分也叫(动态变量)
    #       print(self)
    #        print(666)
        
        def __init___(self, name, age, sex, hobby):
            self.name = name
            self.age = age
            self.sex = sex
            self.hobby = hobby
            
        def work(self):
            print("人类都会工作...")
            
        def shop(self):
            print("人类都会消费...")

    2.1>从类名的角度,操作类体中的静态变量(静态字段)

    • 2.1.1>类名.__dict__是查找类体中查询类中所有的内容,(只能进行查找,不能进行增,删,改)如下图所示:
      • print(Person.__dict__)

    • 2.1.2>通过万能的(.)来实现对静态变量的操作(增加)
      • Person.skill = "使用工具"
      • print(Person.__dict__)

    • 2.1.3>通过万能的(.)来实现对静态变量的操作(删除)
      • del Person.faith
      • print(Person.__dict__)

    • 2.1.4>通过万能的(.)来实现对静态变量的操作(修改)
      • Person.anamal = "有时候也比较笨"
      • print(Person.anamal)...............此时打印的结果是"有时候也比较笨"
      • print(Person.__dict__)

    • 2.1.5>通过万能的(.)来实现对静态变量的操作(查找)
      • print(Person.mind)..............................................................此时打印的结果是:"有思想的" 

    3,从对象的角度对静态变量(静态字段)和方法(函数)的操作

    • 3.1>从类转化为对象(类名+()的过程:实例化的过程(创建一个对象的过程)) Person()是实例化对象
      • ret = Person()
    • print(ret)........,,,,此时打印的是

    • 当类名+() 就会产生一个对象 只要一产生对象就会自动执行__init__方法(__init__里边的参数只有(self)的时候)
    • 3.2>从对象的角度对静态变量和人动态方法去操作
      • 3.2.1>操作对象中的静态变量
        • ret= Person("name",58,"不详","烫头")............................当有参数的时候def __init__(self)不能出现
        • print(ret)

        • print(ret.__dict__)

      • 3.2.2对象对静态变量操作(查找)  
        • print(ret.name)....................................此时打印结果是:333    alex
      • 3.2.3对象对静态变量操作(增加)
        • ret.hight = 175
        • print(ret.ret)........................................此时打印结果是:333     175
        • print(ret.__dict__)......此时打印结果是:333   {'name': 'alex', 'age': 58, 'sex': '不详', 'hobby': '烫头', 'hight': 175}
      • 3.2.2对象对静态变量操作(删除)
        • del ret.name.....................................这是删除name这个键值对
        • print(ret.__dict__)..............................此时打印结果是:333    {'age': 58, 'sex': '不详', 'hobby': '烫头'}
      • 3.2.2对象对静态变量操作(修改)
        • ret.name = "太白"...............................把name = "alex"改成  name = "太白"
        • print(ret.__dict__)............此时打印的结果是:333   {'name': '太白', 'age': 58, 'sex': '不详', 'hobby': '烫头'} 
    • 3.3 >对象调用类体中的方法   (据太白说,工作中,通过对象执行类中的方法,而不是通过类名)
      • 3.3.1>调用类体中的方法(函数)
        • ret.work().................此时打印的结果是:333    人类都会工作...(直接用对象调用就好了)
      • 3.3.2对象调用类体中的方法(函数)
    class Person:
    
        def __init__(self, name, age, sex, hobby):
            self.name = name
            self.age = age
            self.sex = sex
            self.hobby = hobby
    
        def work(self):
            print("%s都会工作" % self.name)
    super = Person("wusir", 36, "", "抽烟")
    super.work()  # wusir都会工作

    4,当创造一个对象时:

    • 4.1>类名+()产生一个实例(对象,对象空间)
    • 4.2>自动执行类中的__init__方法,将对象空间传给__init__的self参数
    • 4.3>给对象封装相应的属性
     
  • 相关阅读:
    MySQL修改时区的方法小结
    MYSQL日期 字符串 时间戳互转
    2017php经典面试题
    PHP获得真实客户端的真实IP REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR
    开放api接口签名验证
    MySql之ALTER命令用法详细解读(转)
    easyUI datagrid 清空
    webApi文档好帮手-apidoc使用教程
    驼峰命名和下划线命名互转php实现
    SQL Server 数据导入Mysql详细教程
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/9378714.html
Copyright © 2011-2022 走看看