随笔 - 241  文章 - 1  评论 - 58  阅读 - 85万 

                                                              面向对象程序设计思路 

 

一、面向对象之 对象分析  #面向对象的核心设计:就是对象,一切围绕对象之间的交互。   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 人马 !
项羽   把 刘邦   砍死于  赤兔马     之下!
复制代码

 

posted on   Martin8866  阅读(351)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示