面向对象程序设计思路

一、面向对象之 对象分析#面向对象的核心设计:就是对象,一切围绕对象之间的交互。   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. Ubuntu 使用Git 使用
  2. View-屏幕坐标 Content-网页(内容)坐标 mScrollX和mScrollY-屏幕坐标偏移
  3. atan与atan2的区别
  4. Golang——数据类型使用细节详解
  5. 面试 | 你说你熟悉MySql,那你就来谈谈InnoDB如何解决幻读的?
  6. redis清理缓存_大话Redis问题
  7. 抛物线、导弹线轨迹计算
  8. 对应版本_DNF:韩服新增天域之母等13件特殊史诗,老版本装备全部直升100级
  9. API接口文档生成方案调研
  10. 计算机专业暑期三下乡活动方案,暑期三下乡活动方案
  11. 利用计算机管理档案,利用计算机管理档案的方法
  12. 通过motion实现摄像头远程监控(转)
  13. Windows7如何显示文件后缀
  14. 这个季节有离别——观《Sad Movie》有感
  15. 点到点法式平面投影点的计算
  16. 七夕表白java代码_身为程序猿的你,七夕表白代码你有get吗
  17. windows环境系安装flask框架,pyth3.x版本
  18. 无人机航模电池上面有20C 30C,这是放电倍率
  19. 计算机a类论文有哪些,a类核心期刊有哪些
  20. OrCAD学习笔记1

热门文章

  1. kafka消息消费有延迟_简易实现kafka延迟消息
  2. bp神经网络原理 实现过程,bp神经网络的应用案例
  3. 语音识别发展史与入门书籍简介
  4. 【翻译】HyNet: Learning Local Descriptor with Hybrid Similarity Measure and Triplet Loss
  5. 股民学堂:短线炒股绝招 值得一学
  6. 程序猿也爱学英语,有图有真相 1
  7. 融合多策略的黄金正弦黑猩猩优化算法
  8. 清明时节,思念友人张锦文
  9. 小白也能看懂的Pandas实操演示教程(下)
  10. 技术思维VS管理思维