面向对象程序设计思路

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

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

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

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

二、面向对象设计 OOD

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

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

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

二、面向对象编程 OOP

4、先定义类

4、实例化出对象

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

三:代码

classStudens:

country='中国'school='老男孩'

def __init__(self,cla, teacher,name,age):

self.cla=cla

self.teacher=teacher

self.name=name

self.age=agedefseach_teacher (self):print("%s的老师%s"%(self.name,self.teacher))defstudy(self):print("%s正在学习 %s" %(self.name,self.cla))

s1=Studens('python','egon','张根','24')

s1.seach_teacher()

s1.study()classTecher:

company='oldboy'job='teacher'hobby='woman'

def __init__(self,name,age,teach):

self.name=name

self.age=age

self.teach=teachdefteaching(self):print('%s在教%s' %(self.name,self.teach))defseach (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 #生命值

defatt(self,enemy):

enemy.life-=self.attackprint("%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人马 !

项羽 把 刘邦 砍死于 赤兔马 之下!

python是面向对象开发_Python之面向对象相关推荐

  1. 阿里云【名师课堂】Java面向对象开发2:面向对象简介

    阿里云[名师课堂]Java面向对象开发2:面向对象简介 编程语言发展阶段 编程语言发展阶段 面向机器语言:汇编语言 面向过程语言:C语言.FORTRAN等 面向对象语言:Java等 面向过程的核心是编 ...

  2. python装饰器和异常处理_装饰器异常处理-面向对象编程-Python教程自动化开发_Python视频教程...

    课程目标:使学员掌握python基础教程知识,能够开发常用的PYTHON脚本 课程特色:实战,细致,生动,深入浅出 适用人群:适合PYTHON初学者 课程详情:该Python视频教程从0基础开始讲解P ...

  3. Python全栈开发,Day7 - 面向对象学习

    本章内容 面向对象编程介绍 面向对象开发 面向对象的特性 一.面向对象编程介绍 介绍之前,先说一个例子: 你的老板要你做一款枪战游戏,游戏里面有很多的角色,比如CF里面的潜伏者和保卫者,在游戏里还有很 ...

  4. python 黑客工具开发_python黑客软件的搜索结果-阿里云开发者社区

    带你读<Python科学计算(原书第2版)>之一:导论 计算机科学丛书点击查看第二章点击查看第三章Python科学计算(原书第2版)Python for Scientists, Secon ...

  5. python音视频开发_Python音视频开发:消除抖音短视频Logo的图形化工具实现

    一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现消除视频Logo的四种方法,并提供了详细的 ...

  6. python面向对象学习_Python 初识面向对象#学习猿地

    > 面向对象编程--Object Oriented Programming,简称`OOP`,是一种**以对象为中心**的程序设计思想. > > 面向过程编程--Procedure O ...

  7. python基础程序设计与面向对象程序设计_python基础——面向对象的程序设计

    python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

  8. python对象可分为什么_Python是面向对象的编程语言,而对象拥有各种特性、功能,专业术语称之为____...

    [综合练习]I took advice on the matter. [单选题]在使用仿制图章工具去除瑕疵时,需结合( )键,才能完成样本的取样. [综合练习]Only a very slight a ...

  9. python怎么定义名称_python 之 面向对象基础(定义类、创建对象,名称空间)

    第七章面向对象 1.面向过程编程核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题流 ...

最新文章

  1. Android SQLite调试
  2. springboot 接受数组对象_SpringBoot+RabbitMQ 方式收发消息
  3. python raise valueerror_请教:Python多进程编程时出现raise ValueError(Pool not running) 为什么?。...
  4. 网站title实现切换
  5. 50 【Go版本变化】
  6. 2020 版 Python 数据清理终极指南!
  7. JS 获取元素当前的样式信息
  8. 专科学院计算机专业全国排名,2019年专科专业排行_2019世界大学排名 计算机专业...
  9. 凸优化第四章凸优化问题 4.3 线性规划问题
  10. 千万数据,如何快速商品分页
  11. win11电脑摄像头打不开,如下图
  12. 京东金融App崩溃治理实践
  13. java在regedit找不到_Windows找不到文件regedit打不开注册表的解决办法
  14. slf4j日志门面担当
  15. 云计算销售和传统销售有什么区别
  16. 微带线等效电感仿真与设计
  17. 微信群裂变引流文案技巧,这样写文案更吸引粉丝!
  18. 35 | 前端安全:如何打造一个可信的前端环境?
  19. 【设计模式】备忘录模式(以电影明日边缘为例)
  20. 人工神经网络 :模糊神经网络

热门文章

  1. 美容院没有顾客怎么办
  2. C++基础入门知识学习(通俗详细讲解)
  3. ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上
  4. 地方门户网站的运营我们缺少的是什…
  5. 火鸟门户v4.0 2019全能地方门户系统源码
  6. 一首沉下来特别好听的歌
  7. mapi java_使用 MAPI 实现邮件发送
  8. 利用Biopython 快速根据pmid 来下载参考文献信息
  9. 在Fedora上安装NVIDIA驱动详细教程及解析
  10. CESIUM学习—— viewer.trackedEntity小坑坑