Java自我学习路线
面向对象和面向过程
1. C、C++、Java
- 对于C语言来说,是完全面向过程的
- 对于C++语言来说,是一半面向过程,一半面向对象(C++是半面向对象的)
- 对于Java语言来说,是完全面向对象的
2. 什么是面向过程
2.1 面向过程开发方式的主要特点
- 注重实现功能的步骤
第一步
第二步
… - 注重实现功能的因果关系
因为A所有B
因为B所以C
因为C所以D
… - 面向过程中没有对象的概念,以“我”为中心,只有实现这个功能的步骤以及因果关系
- 面向过程主要关注的是:实现步骤以及整个过程
2.2 面向过程开发方式的缺点
- 耦合度高,扩展力差(耦合度高导致扩展力差)
- 面向过程最主要是每一步与每一步的因果关系,其中A步骤因果关系到B步骤,A和B联合起来形成一个子模块,子模块和子模块之间又因为因果关系结合在一起,假设其中任何一个因果关系出现问题(错误),此时整个系统的运转都会出现问题(代码和代码之间的耦合度太高,扩展力太差)
2.3 面向过程开发方式的优点
- 快速开发
- 对于小型项目(功能),采用面向过程的方式进行开发,效率较高,不需要前期进行对象的提取,模型的建立,采用面向过程方式可以直接进行开发,继而实现功能
3. 什么是面向对象
- 面向对象就是将现实世界分割成不同的单元,然后每一个单元都实现成对象,然后给一个环境驱动一下,让各个对象之间协作起来形成一个系统
- 面向对象成为主流的原因:采用面向对象的方式进行开发,更符合人类的思维方式
- 面向对象主要关注的是:对象A,对象B,对象C,然后对象ABC组合,或者CBA组合…
3.1 面向对象开发方式的优点
- (高内聚,低耦合)耦合度低,扩展力强
3.2 面向对象三个术语
- OOA:面向对象分析(Object-Oriented Analysis)
- OOD:面向对象设计(Object-Oriented Design)
- OOP:面向对象编程(Object-Oriented Programming)
4. 面向对象和面向过程的区别
5. 面向对象三大特征
- 封装(Encapsulation)
- 继承(Inheritance)
- 多态(Polymorphism)
- 任何一个面向对象的编程语言都包括这三个特征
6. 类和对象
- 类:
类在现实世界当中实际是不存在的,类是一个抽象的概念;类本质上是现实世界当中某些事物具有的共同特征,将这些共同特征提取出来形成的概念就是一个“类”,“类”其实是一个模板
类 = 属性 + 方法
属性来源于:状态
方法来源于:动作(行为) - 对象
对象是实际存在的个体,对象也被称为实例(instance),对象包括属性与行为 - 通过类创建对象
在Java语言中,要想得到“对象”,必须先定义“类”,“对象”是通过“类”这个模板创造出来的个体,这个过程也可以称为实例化 - 抽象
从对象到类称为抽象(一个或多个对象具有共同特征,进行抽象形成了类)
即:多个对象具有共同特征,进行思考总结抽取共同特征的过程
类 --[实例化]–> 对象(实例)
对象 --[抽象]–> 类