1.面向对象
面向过程 侧重分步骤 : 类似于公司扁平化管理
比如做饭 :
1 买菜,买食材
2 开火烧油
3 翻炒
4 出锅
....
面向对象 侧重分模块 : 类似于公司的层级化管理
分析 完成做菜这件事需要涉及到的事物 : 厨师,食材,工具
2.优点
比如要下五子棋
面向过程的设计思维是这样的 :
1 开始游戏
2 黑子先走
3 绘制画面
4 判断输赢
5 白子走
6 绘制画面
7 判断输赢
8 返回步骤2
面向对象解决 :
五子棋可以分为三个模块
1 棋子模块
2 棋盘模块 : 绘制画面
3 规则模块 : 判断犯规,输赢等
盖浇饭 : 菜饭分离,提高灵活性,饭不满意就换饭,菜不满意就换菜
软件程序中就是 : 可维护性,因为饭菜分离,耦合度较低
而炒饭,饭和菜是混淆在一起的,耦合度较高,可维护性较差
软件程序追求的目标之一就是可维护性,主要体现在三个方面 :
1 可理解性
2 可测试性
3 可修改性
而面向对象的好处之一就是改善了软件系统的可维护性,降低耦合度
3.构造方法
4.类和对象
5.实例化
6.对象使用
7.变量和方法的使用
1 什么时候使用静态变量
同类中多个对象,共同的属性共同的值的情况下,使用静态变量
2 什么时候使用成员变量
同类的多个对象,共同的属性但是不同的值的情况下,使用成员变量(值可以相同可以不同)
3 什么时候使用局部变量
如果某个数据只在某个方法中临时使用,其他地方也用不到的情况下,就使用局部变量
4 什么时候使用静态方法
如果该方法中没有成员属性的使用,就定义为静态方法
也就是说,该方法,和对象无关的时候,因为静态方法中是无法直接使用非静态属性的,因为静态 在静态区,而成员在堆内存,所以直接写名字,是找不到的,必须用对象引用才可以
5 什么时候使用成员方法
如果该方法中有成员属性的操作,就定义为成员方法
也就是说,该方法和对象有关,因为成员方法和成员变量都是在堆内存,所以可以直接使用
8.JavaBean
9.常见异常
10.传值和传引用