zoukankan      html  css  js  c++  java
  • Python之面向对象

                                                                  面向对象程序设计思路 

    一、面向对象之 对象分析  #面向对象的核心设计:就是对象,一切围绕对象之间的交互。   OOA

    0、需求分析  框定程序的功能范围

    1、找到程序中涉及到的对象---------->找对象

    -------------------------------------------------------------------------------------------------------------------------------------------------------------

    二、面向对象设计 OOD

    2、 对象分类:从一堆对象中分类。--------------------->对象分类,就找出了程序中的类 

    3、找各类对象的共同的特征与技能(公共属性),各类对象独有的特征和技能(def __init__(self)) -----------找出类的共有特征、方法,和私有特征、方法

    ------------------=------------------------------------------------------------------------------------------------------------------------------------------------------------------

    二、面向对象编程 OOP

    4、先定义类

    4、实例化出对象

    5、对象之间的交互得到结果

    三:代码

    class Studens:
        country='中国'
        school='老男孩'
    
        def __init__(self,cla, teacher,name,age):
            self.cla=cla
            self.teacher=teacher
            self.name=name
            self.age=age
        def seach_teacher (self):
            print("%s的老师%s"% (self.name,self.teacher))
        def study(self):
            print("%s正在学习 %s" % (self.name,self.cla))
    
    
    s1=Studens('python','egon','张根','24')
    s1.seach_teacher()
    s1.study()
    
    
    class Techer:
        company='oldboy'
        job='teacher'
        hobby='woman'
        def __init__(self,name,age,teach):
            self.name=name
            self.age=age
            self.teach=teach
        def teaching(self):
            print('%s在教%s' % (self.name,self.teach))
        def seach  (self):
            print('他工作在:%s,目前工作:%s 爱好:%s'%(self.company,self.job,self.hobby))
    
    t1=Techer('alex',35,'python')
    t1.teaching()
    t1.seach()
    t2=Techer('egon',45,'linux')
    t2.teaching()
    t2.seach()
    
    执行结果
    
    张根的老师egon
    张根正在学习 python
    alex在教python
    他工作在:oldboy,目前工作:teacher 爱好:woman
    egon在教linux
    他工作在:oldboy,目前工作:teacher 爱好:woman

    四、对象之间的交互 (对象之间使用方法(函数属性)相互调用,使对方的属性(变量属性)发生变化)

    class Ch:                      #定义楚汉类
        def __init__(self,country,name,arms,attack,mount,life):
            self.country=country    #国家
            self.name=name          #姓名
            self.arms=arms          #拿的武器
            self.attack=attack      #攻击值
            self.mount=mount        #坐骑
            self.life=life          #生命值
    
        def att(self,enemy):
            enemy.life-=self.attack
            print("%s杀%s  %s  人马   %s 还剩  %s 人马 !"%( self.name,enemy.name,self.attack,enemy.name,enemy.life))
            if enemy.life<=0:
                print("%s   把 %s   砍死于  %s     之下!"% (self.name,enemy.name,self.mount ))
    
    
    l=Ch('','刘邦','小剑',300,'汗血宝马',1000) #实例化出刘邦
    x=Ch('','项羽','长刀',300,'赤兔马',1000)   #实例化出项羽
    
    l.att(x)  #刘邦 用攻击方法 讲项羽对象 当做参数传进去,使刘邦对象的 属性发生变化;  =====刘邦攻击项羽 对象之间的交互
    l.att(x)
    l.att(x)
    l.att(x)
    
    x.att(l)   #项羽 用攻击方法 将 刘邦对象 当做参数传进去,使刘邦对象 的属性发生变化; =====项羽攻击刘邦 对象之间的交互
    x.att(l)
    x.att(l)
    x.att(l)
    
    执行结果
    
    刘邦杀项羽  300  人马   项羽 还剩  700 人马 !
    刘邦杀项羽  300  人马   项羽 还剩  400 人马 !
    刘邦杀项羽  300  人马   项羽 还剩  100 人马 !
    刘邦杀项羽  300  人马   项羽 还剩  -200 人马 !
    刘邦   把 项羽   砍死于  汗血宝马     之下!
    项羽杀刘邦  300  人马   刘邦 还剩  700 人马 !
    项羽杀刘邦  300  人马   刘邦 还剩  400 人马 !
    项羽杀刘邦  300  人马   刘邦 还剩  100 人马 !
    项羽杀刘邦  300  人马   刘邦 还剩  -200 人马 !
    项羽   把 刘邦   砍死于  赤兔马     之下!
  • 相关阅读:
    iOS仿UC浏览器顶部频道滚动效果
    OC中NSClassFromString()与NSStringFromClass()的用法及应用场景
    利用工具MailUtils实现邮件的发送,遇到的大坑,高能预警!!
    使用response实现文件下载注意点
    mac版MyEclipse的安装及创建web项目
    Mac系统下安装Tomcat,以及终端出现No such file or directory的错误提示解决方案
    机器学习笔记-Python简介
    解决mscordacwks.dll不一致问题
    IIS日志如何记录X-Forwarded-For
    深入理解Redis(番外)——持久化
  • 原文地址:https://www.cnblogs.com/sss4/p/6723060.html
Copyright © 2011-2022 走看看