zoukankan      html  css  js  c++  java
  • python全栈开发 * 19 面向对象 知识点汇总 * 180701

    19 面向对象初识2 
    一.类的名称空间
    1.对象的名称空间
    对象的名称空间中有类对象指针,对象可以通过"类对象指针"找类中的"静态变量"(静态字段),也可以用对象找类中的"方法名"(函数).
    2.类的查询顺序
    对象的查询顺序,先找"对象空间",如果没有,通过对象中"类对象指针"找"类名称空间"
    3.对象的问题
    无论创建多少对象都是开辟独立的空间,各个对象之间不能互相查找,干扰.
    二.计算一个类实例化多少个对象
    class Person:
    level="高级动物"
    mind="有思想"
    stand="直立行走"
    count=0 # 设置一个计数变量
    def __init__(self,name,age):
    Person.count=Person.count+1 # 设置一个计数器
    self.name=name
    self.age=age
    def eat(self):
    print("吃吃的爱")
    aQ=Person("阿Q",30)
    aP=Person("阿啤",26)
    aF=Person('阿凡',27)
    print(aQ.count) # 3

    三.组合
    1.定义
    给一个类的对象封装一个属性,这个属性是一个类的对象.
    2.模拟英雄联盟写一个游戏人物的类. (加武器)
    要求:
    (1)创建一个 Game_role的类.
    (2) 构造方法中给对象封装name,ad(攻击力),hp(血量).三个属性.
    (3) 创建一个attack方法,此方法是实例化两个对象,互相攻击的功能:
    例: 实例化一个对象 盖伦,ad为10, hp为100
    实例化另个一个对象 剑豪 ad为20, hp为80
    盖伦通过attack方法攻击剑豪,此方法要完成 '谁攻击谁,谁掉了多少血, 还剩多少血'的提示功能.
    class Game_role: #第一个类
    def __init__(self,name,ad,hp):
    self.name=name
    self.ad=ad
    self.hp=hp


    def attack(self,other):
    other.hp=other.hp-self.ad #剩余血量
    print("%s攻击%s,%s掉了%s血,还剩%s血" %(self.name,other.name,other.name,self.ad,other.hp ))
    def package_weapon(self,wea):
    self.weapon = wea #给对象增加weapon属性
    class Sword: #第二个类
    def __init__(self,name,ad):
    self.name=name
    self.ad=ad
    def fight(self,other1,other2):
    other2.hp=other2.hp-double_edged.ad #剩余血量
    print("%s用%s攻击%s,%s掉了%s血,还剩%s血" %(hero1.name,self.name,hero2.name,hero2.name,double_edged.ad,other2.hp))

    hero1=Game_role("盖伦",100,500) #第一个类 实例化的第一个对象
    hero2=Game_role("剑豪",250,800)  #第一个类 实例化的第二个对象
    double_edged=Sword("宝剑",400) #第二个类 实例化的第一个对象

    hero1.package_weapon(double_edged) #对象执行package_weapon方法给对象增加weapon属性
    hero1.weapon.fight(hero1,hero2) #hero1.weapon对象查找对象的weapon属性 weapon的值为"double_edged"
    double_edged是Sword类实例化的一个对象,对象执行fight方法需要传两个参数
  • 相关阅读:
    【spring-boot】spring-boot 事物管理——之注解@Transactional
    【spring-boot】Spring-boot学习-helloWorld
    【Maven】failOnMissingWebXml
    【java基础领域】高内聚、低耦合理解
    Pascal's Triangle
    Remove Nth Node From End of List
    Valid Palindrome
    Longest Common Prefix
    Roman to Integer
    Palindrome Number
  • 原文地址:https://www.cnblogs.com/J-7-H-2-F-7/p/9239730.html
Copyright © 2011-2022 走看看