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)

     未完待续……

  • 相关阅读:
    hiberate关系映射大全
    SpringMVC+RestFul详细示例实战教程
    [转]为什么大型网站前端使用 PHP 后台逻辑用 Java?
    offsetWidthoffsetleft 等图文解释
    理解jquery的$.extend()、$.fn和$.fn.extend()
    使用jquery获取url及url参数的方法
    构建高并发高可用的电商平台架构实践
    jquery实现多条件筛选特效代码分享
    【转载】“活在当下”是什么含义呢?
    UL LI 布局 TAB 切换条
  • 原文地址:https://www.cnblogs.com/wangyuxing/p/8288461.html
Copyright © 2011-2022 走看看