0 面向对象
以面向对象方式来:
组织代码 (以类方式)
封装数据 (以对象方式)
1 发展过程:
以方法为核心来组织 :C语言,贝尔实验室发明的
弊端:
方法太多, 在来别人时,很难上手,难以维护
不敢改,需要把你所有方法流程 和调用流程熟悉。
这样这个软件做不大,这就是软件危机的由来
后来贝尔实验室的人发现C语言中有 结构体这个特性,通过结构体组织起来,
表示车的放在一起 表示导航仪的放在一起
第一是发散,把同样思路用在别的地方
第二是纵深,继续往深里想。
使用纵深下,C语言中相同的方法和属性都在一起,发明了class这个名词
于是C++诞生了,在C语言基础上的增强版(带类的C)
Java的出现,
让分工更好了,别人来做的时候,只做变速箱的类的功能别的类的功能不要这人来管,
这样开发和维护成本简单多了,也是最优的。
最终达到了 物以类聚的哲学
面向对象思维来看世界 :
面向过程,在大量协作下,即使每个人都理解
你的意图的90% 那么最终坐下来的结果必然是失败。
用面向过程思维来处理协作的事,处理不了。
而且越复杂越多管理起来越难,抗战三年老毛一直在延安
指挥协调对象协作,老蒋不停坐飞机飞来飞去忙的要死(控制细节)
Java内存分析图:
Java和C++的垃圾回收特色 :
this 的使用 :
super的使用 :
this super是隐式对象,不需要显式声明,但是在每个类的方法中,JVM已经帮你默认带上了。
有就用组合 比如 鸟有爪子 是组合 鸟是动物 是继承