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

    面向对象

    1、面向对象

      面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物:对象就是单独的个体,程序的设计都是在这个个体之内。

      优点:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。

      缺点:可控性差

      类:抽象的,我能知道什么属性,有什么技能,但不知道属性的具体的值

      对象,有具体的值,技能和属性都是根据类的规范

    2、类和对象

      类:具有相同特征的一类事物(人、狗、老虎)

      对象:具体的某一个事物(隔壁阿花、楼下旺财)

      实例化:类到对象具体实例的过程

      1)类名 ()  创造出一个对象,并且创造了一个self变量

             调用__init__方法,类名括号里的参数会在这里被接收

        执行__init__方法

        返回self

      2)对象能做的事

        查看属性

        调用方法

        __dict__对于对象的增删改查都可以通过字典的语法进行

      3)类名能做的事

        实例化

        调用方法,要自己传递self参数

        调用类中的属性,也就是调用静态属性

        __dict__调用类中的属性,只能查看,不能修改

     3、具体实例:

    class Person:                    #类名
        country= 'China'            #创造了一个只要是这个是这个类就有的属性,
                                    #类属性,是静态属性
        def __init__(self,name,blood,aggr,kind):         #初始化方法,self是一个必须传的参数
            self.name=name                                #self是一个可以储存很多属性的大字典
            self.blood=blood
            self.aggr=aggr
            self.kind=kind
        def attack(self,dog):               #方法,一般情况下必须传self参数,且必须写在第一
            dog.blood -= self.aggr        #个,后面可以传很多参数,是自由的
            print(dog.blood)
    
    jin=Dog('金老板',100,20,'male') #类名实例化对象,jin就是实例化
    alex=Person('Alex',100,30,'')
    print(alex.country)          #类名,可以看类的属性,不需要实例化就可以看属性
    print(alex.__dict__)         #查看所有属性
    alex.attack(jin)            #相当于Person.attack(alex,jin),调用方法 类名.方法名(对象名)
    
    class Dog:
        def __init__(self,name,blood,aggr,kind):
            self.name=name
            self.blood=blood
            self.aggr=aggr
            self.kind=kind
        def bite(self,person):
            person.blood -= self.aggr
            print(person.blood)

     未完待续……

  • 相关阅读:
    HDU 1525
    kmp模板
    hdu 4616 Game(树形DP)
    hdu 4619 Warm up 2(并查集活用)
    hdu 4614 Vases and Flowers(线段树加二分查找)
    Codeforces 400D Dima and Bacteria(并查集最短路)
    poj 2823 Sliding Window (单调队列)
    hdu 2196 Computer(树形dp)
    hdu 4604 Deque
    最短路径
  • 原文地址:https://www.cnblogs.com/wangyuxing/p/8288461.html
Copyright © 2011-2022 走看看