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

    • 初识类
    • 静态类
    • 类的作用
    • 对象之间交互

    一 如何创建一个类:(具有相同属性和方法的同一类事物)

    class Data:  # 注意类名首字母要大些(规定) 关键字 class
       def __init__(self,a) # 这是一个内置方法,self是一块内存空间 后面可以跟参数按顺序)
      delf.a=a
    dog=Data('咬人') # 类名加括号就相当于执行类中的__init__方法

    二 看例子

    class Data:
        country = 'china'  # 类的属性  ,静态属性(所有这个类都共同的属性)
        def __init__(self,a):
            self.name=a  # 此时这里的self.name=a就是以一个字典的键值对的形式存放的 {'name': '张三'}
            print(self)   # 此时打印的跟print(dog)的是一个内存地址
    dog=Data('张三')
    
    print(dog.name) # 这是查看属性
    print(dog)  # 此时打印的跟print(self)的是一个内存地址
    print(dog.__dict__) # 查看类中所有的属性 {'name': '张三'} 字典的形式
    dog.sex=''  # 增加属性
    print(dog.sex)
    print(dog.__dict__)  #{'name': '张三', 'sex': ''}
    # del dog.sex  # 删除属性
    # print(dog.sex)  # Data' object has no attribute 'sex'   对象中没有该属性
    dog.name='李四' #  修改属性
    print(dog.name)  # 李四  

    小总结:

    类名作用:
    实例化对象
    -调用类中的静态属性 (也可以进行操作)
    实例化的过程:
    1 创建一个属于对象的空间
    2 将这个空间的地址和参数传递给__init__方法
    3执行init方法
    4 将对象的空间返回给对象名
    静态属性: 所有这个类都有的共同属性
    
    对象能做什么;
    调用对象的属性 (对象名点属性名)
    调用对象中的方法(动态方法)  (对象名点方法名或者类名点方法名推荐使用前者,就跟一个函数一样,不过返回值取得时候
    print(对象名点方法名(),也可以传参但他会默认自带一个self,次self可以调用其本身的属性,其后也可以传其他对象用于相互交互) 什么是对象的属性: 存储在实例化对象之后的空间里的属性都叫对象的属性,每一次对象都有自己独立的空间, 每一个对象都有自己的属性值 什么是动态属性: 定义在类中的函数,自带一个self,就是调用这个方法的对象本身

    三 相互交互

    class Person:
        def __init__(self,name,sex,hp,mp,ad):
            # print(self)
            self.name=name
            self.sex=sex
            self.hp=hp
            self.mp=mp
            self.ad=ad
        def attack(self,dog):  # self默认是自己本身的,后面可以传其他的对象名
            # print(self)
            print('%s攻击了%s' % (self.name,dog.name))
            dog.hp-=self.ad
    class Dog:
        def __init__(self,name,kind,hp,ad):
            self.name=name
            self.kind=kind
            self.hp=hp
            self.ad=ad
        def bite(self,men):
            print('%s咬了%s'% (self.name,men.name))
            men.hp-=self.ad
    
    alex=Person('alex',None,10,10,0.1)
    haha=Dog('haha','jinmao ',6666,663)
    # print(alex.__dict__['name']) # 这样也可以查看属性
    # print(alex.name) # 查看属性
    # alex.name='alex_sb'  # 修改属性
    # alex.eat=''  # 添加属性
    # print(alex.eat)
    # del alex.eat
    # print(alex.eat) #   删除属性 'Person' object has no attribute 'eat' 没有属性
    print(alex.name)
    # print(haha.hp)   # 咬之前的血量
    # alex.attack(haha)  # 给函数传haha
    # print(haha.hp)   # 减完之后的血量
     # 狗咬人
    print(alex.hp)
    haha.bite(alex)
    print(alex.hp)
  • 相关阅读:
    HTML screenX 事件属性
    CSS Display(显示) 与 Visibility(可见性)
    JavaScript手册 | JS Array 对象中的sort() 方法
    IntelliJ IDEA收费版本Ultimate的安装和破解
    ASP.NET Style 控件
    HTML area hreflang 属性
    Shell test 命令
    ftplib (Internet) – Python 中文开发手册
    Java 之 Collection 接口
    java 之 集合概述
  • 原文地址:https://www.cnblogs.com/systemsystem/p/9991944.html
Copyright © 2011-2022 走看看