面向对象编程
面向对象的编程方法
优点:
解决了程序的扩展性,对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中的一个任务参数的特征和技能修改都和容易。
缺点:
1.编程的复杂程度远远高于面向过程,不了解面向对象而立刻上手基于它设计程序,极容易出现过度设计的问题,一些扩展性要求低的场景使用面向对象会徒增编程难度,比起管理linux系统的shell脚本就不合适用面向对象去设计,面向过程 反而更加适合。
2.无法面向过程的程序设计流水线式的可以很精准的预测问题的处理流程和结果,面向对象的程序一到那开始就由对象之间的交互解决问题,即便是上帝也无法准确的预测最终的结果。于是我们经常看见对战类游戏,新增一个游戏人物,在对战的过程中极容易出现流弊的技能,一刀砍死3个人,这种情况是无法准确预知的,只有对象之间交互才能准确的知道最终的结果。
应用场景:
需要经常变化的软件,一般要求的变化都集中在在用户层,互联网层,企业内部软件,游戏等都是面向对象的程序设计大显身手的好地方。
面向对象的程序设计并不是全部,对于一个软件的质量来说,面向对象的程序设计只是用来解决扩展性。
类与对象
在整个面向对象编程中,最重要的两大部分就是类和对象。
在现实世界中:先有对象,再有类
在程序中,务必保证先定义类,后产生对象
属性的查找
其实就是先找到对象本身的,再去找整个的类。
类的绑定到对象方法的特殊之处
在整个类中,必须遵守接收几个值就必须有几个值传参
类中定义的函数主要是给对象使用的,而且是绑定到对象的,虽然所有对象指向的都是相同的功能,但是绑定道不同的对象就是不同的绑定方法
强调:绑定到对象的方法的特殊之处就在于,绑定给谁就由谁来调用,就会将谁本身当做第一个参数的传给方法,即自动传值(_init_ 也是一样的道理)
注意:绑定到对象的方法的这种自动传值的特征,决定了在类中定义的函数都要默认写一个参数self,self可以是任意名字,但是约定俗成地写出self。