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

    面向对象思想

    面向对象程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切事物皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。

    类:具有相同特征(属性和行为)事物的抽象

    例:狗是一类

    对象:某个类的具象

    例:我家的大白(大白是一只狗)

    类体:两部分:变量部分,方法(函数)部分

    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    class Person:
        mind="有思想的"          
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):         
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    print(Person.__dict__)
    
    {'__module__': '__main__', 'mind': '有思想的', 'work': '会工作的', 'money': '会赚钱,也会花钱的', 'like': <function Person.like at 0x0000018F46368D90>, 'dream': <function Person.dream at 0x0000018F46368E18>, 'die': <function Person.die at 0x0000018F46368EA0>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    print(Person.__dict__["work"])
    
    会工作的
    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    print(Person.mind)
    有思想的

    注意:变量部分不可以增删改查

    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    Person.__dict__["money"]="百万先生"
    print(Person.__dict__["money"])
    
    结果:报错
    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    Person.love="有爱的"
    Person.work="不会工作的"
    del Person.mind
    print(Person.__dict__)
    print(Person.mind)

    综上:

    语法

    • 定义类需要使用关键字:class

    • 类名:原则上只要符合标识符的命名规范即可,但是我们通常每个单词首字母大写命名.例如:Person

    • 不要忘记类名后面的冒号"  :  "

    self:

    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    Person.dream(11)  #()中必须有一个值
    操作类中的方法 :增,删,改,查
    class Person:
        mind="有思想的"           # 变量部分,静态变量,静态字段
        work="会工作的"
        money="会赚钱,也会花钱的"
        def like(self):           # 方法部分,函数,动态变量
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    Person.age="18"
    print(Person.__dict__)           #
    
    del Person.like
    print(Person.__dict__)           #
    
    Person.like="美女"
    print(Person.__dict__)           #
    
    Person.dream(11)                 #
    类名的角度
    操作类中的静态变量
    1, Person.__dict__ 查询类中的所有的内容 (不能进行增删改操作)
    2, 万能的 . 对类中的单个的变量进行增删改查,用 万能的 点


    类名+()的这个过程:实例化的过程(创建一个对象的过程),
    Person() 实例化对象,实例,对象
    class Person:
    mind="有思想的"
    work="会工作的"
    money="会赚钱,也会花钱的"
    def __init__(self):
    print(self)
    print(666)
    def like(self):
    print("喜欢台球")
    def dream(self):
    print("有理想的")
    def die(self):
    print("会死亡的")
    ret=Person()
    print(ret)
    
    
    1, 类名+()产生一个实例(对象,对象空间.)
    2, 自动执行类中的__init__方法,将对象空间传给__init__的self参数,
    3, 给对象封装相应的属性.
    print(ret.__dict__)
    对象的角度:
    class Person:
        mind="有思想的"
        work="会工作的"
        money="会赚钱,也会花钱的"
        def __init__(self,name,age,hobby):
            self.name=name
            self.age=age
            self.hobby=hobby
        def like(self):
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    ret=Person("xiaomin",18,"打篮球")
    print(ret)
    print(ret.__dict__)

    <__main__.Person object at 0x000001ADFFCE13C8>
    {'name': 'xiaomin', 'age': 18, 'hobby': '打篮球'}
    
    
    操作对象中的静态变量(增删改查)
    class Person:
        mind="有思想的"
        work="会工作的"
        money="会赚钱,也会花钱的"
        def __init__(self,name,age,hobby):
            self.name=name
            self.age=age
            self.hobby=hobby
        def like(self):
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    ret=Person("xiaomin",18,"打篮球")
    
    print(ret.name)            #
    
    ret.high=175        
    print(ret.__dict__)        #
    
    del ret.name
    print(ret.__dict__)        #
    
    ret.age=28
    print(ret.__dict__)        #
    
    
    对象操作类中的静态变量 : 只能查询
    # class Person:
    #     mind="有思想的"
    #     work="会工作的"
    #     money="会赚钱,也会花钱的"
    #     def __init__(self,name,age,hobby):
    #         self.name=name
    #         self.age=age
    #         self.hobby=hobby
    #     def like(self):
    #         print("喜欢台球")
    #     def dream(self):
    #         print("有理想的")
    #     def die(self):
    #         print("会死亡的")
    # ret=Person("xiaomin",18,"打篮球")
    # print(ret.mind)
    
    
    对象调用类中的方法  (工作中 通过对象执行类中的方法,而不是通过类名)
    class Person:
        mind="有思想的"
        work="会工作的"
        money="会赚钱,也会花钱的"
        def __init__(self,name,age,hobby):
            self.name=name
            self.age=age
            self.hobby=hobby
        def like(self):
            print(self)
            print("喜欢台球")
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    ret=Person("xiaomin",18,"打篮球")
    ret.like()
    print(ret)
    
    <__main__.Person object at 0x0000014CB4D81400>
    喜欢台球
    <__main__.Person object at 0x0000014CB4D81400>
    
    
    class Person:
        mind="有思想的"
        work="会工作的"
        money="会赚钱,也会花钱的"
        def __init__(self,name,age,hobby):
            self.name=name
            self.age=age
            self.hobby=hobby
        def like(self):
            print("%s喜欢台球" % self.name)
        def dream(self):
            print("有理想的")
        def die(self):
            print("会死亡的")
    ret=Person("xiaomin",18,"打篮球")
    ret.like()

    xiaomin喜欢台球
  • 相关阅读:
    谈论软件公司的发展
    几个有用的Sql语句(在Sql Server2000的查询分析器里测试通过)
    热烈祝贺新疆.Net俱乐部博客开通——天下博客开通
    GIS开发随笔(7)——对MapNet控件的几点个人观点
    祝贺所有女性朋友节日快乐
    GIS开发随笔(5)——StudioAT.MapNet.DLL中部分控件的用法
    GIS开发随笔(8)——GIS技术的一点理解和MapNet控件试验
    谈论谜题——关于“恐龙灭绝之谜”的问题
    祝贺新春 喜庆佳节
    Web服务初探:用Demo学Web服务系列(8)——Web服务中Soap消息的相关知识
  • 原文地址:https://www.cnblogs.com/chenyibai/p/9355382.html
Copyright © 2011-2022 走看看