面向对象的软件开发有如下几个阶段:
1.面向对象分析(object oriented analysis ,OOA)
2 面向对象设计(object oriented design,OOD)
3 面向对象编程(object oriented programming,OOP)
4 面向对象测试(object oriented test,OOT)
5 面向对象维护(object oriendted soft maintenance,OOSM)
1 #对象:学校----->归类 2 #共有的特征:商标为etiantian 3 #共有的技能:招生 4 #独有的特征:地址不一样,老师们,课程 5 6 class School: 7 tag=‘etiantian‘ #共有特征 8 def __init__(self,addr): #独有特征 9 self.addr=addr 10 self.teacher_list=[] 11 self.course_list=[] 12 13 def zhaosheng(self): #共有技能 14 pass 15 16 17 #对象:老师---->归类 18 #共同的技能:教课 19 #独有的特征:名字,性别,level,课程 20 21 class Teacher: 22 23 def __init__(self,name,sex,level): 24 self.name=name 25 self.sex=sex 26 self.level=level 27 self.course_list=[] 28 29 def teach(self): 30 pass 31 32 33 #对象:学生---->归类 34 #共同的特征: 35 #共同的技能:search_score,handin 36 #独有的特征:学号,名字,性别,课程 37 class Student: 38 def __init__(self,ID,name,sex): #独有特征 39 self.id=ID 40 self.name=name 41 self.sex=sex 42 self.course_list=[] 43 def search_score(self): #共有技能 44 pass 45 46 def handin(self): 47 pass 48 49 class Course: 50 def __init__(self,name,price,period): 51 self.name=name 52 self.price=price 53 self.period=period 54 55 s1=Student(‘123123123123‘,‘cobila‘,‘female‘) 56 # print(s1.id,s1.name,s1.sex) 57 # print(s1.course_list) 58 # s1.course_list.append(‘python‘) 59 # s1.course_list.append(‘linux‘) 60 # print(s1.course_list) 61 62 python_obj=Course(‘python‘,15800,‘7m‘) 63 linux_obj=Course(‘linux‘,19800,‘2m‘) 64 65 66 s1.course_list.append(python_obj) 67 s1.course_list.append(linux_obj) 68 # print(s1.course_list) 69 70 print(‘‘‘student name is:%s 71 course name is :%s 72 course price is :%s 73 ‘‘‘ %(s1.name,s1.course_list[0].name,s1.course_list[0].price))
例子1
对于小白的忠告:
1.面向对象的程序设计看起来高大上,所以我在编程时就应该保证通篇class,这样写出的程序一定是好的程序(面向对象只适合那些可扩展性要求比较高的场景)
2.很多人喜欢说面向对象三大特性(这是从哪传出来的,封装,多态,继承?漏洞太多太多,好吧暂且称为三大特性),那么我在基于面向对象编程时,我一定要让我定义的类中完整的包含这三种特性,这样写肯定是好的程序
好家伙,我说降龙十八掌有十八掌,那么你每次跟人干仗都要从第一掌打到第18掌这才显得你会了是么,我来一万个人你需要打10000*18掌对么,傻叉
3.类有类属性,实例有实例属性,所以我们在定义class时一定要定义出那么几个类属性,想不到怎么办,那就使劲的想,定义的越多越牛逼
这就犯了一个严重的错误,程序越早面向对象,死的越早,为啥面向对象,因为我们要将数据与功能结合到一起,程序整体的结构都没有出来,或者说需要考虑的问题你都没有搞清楚个八九不离十,你就开始面向对象了,这就导致了,你在那里干想,自以为想通了,定义了一堆属性,结果后来又都用不到,或者想不通到底应该定义啥,那就一直想吧,想着想着就疯了。
你见过哪家公司要开发一个软件,上来就开始写,肯定是频繁的开会讨论计划,请看第八节
4.既然这么麻烦,那么我彻底解脱了,我们不要用面向对象编程了,你啊,你有大才,你能成事啊,傻叉。