面向对象(java的核心)
面向过程和面向对象的区别
面向过程:
核心是因果关系
,没有独立体。关心的是整个流程是怎样实现的。
优点:
对于业务逻辑比较简单的程序,可以快速开发,前期都入成本低
缺点:
很难解决非常复杂的业务逻辑
软件元素之间的耦合度
非常高,只要其中一环出现问题,整个系统收到影响。最终软件扩展能力差
。
由于没有独立体的概念,无法实现组件复用
面向对象:
只关心对象能够带来什么
,不关心是怎么实现的。每个对象之间关联程度很弱,可以看成独立体。最终是每个独立体
之间的协作。
将现实的世界分割成独立单元,各个对象协作起来形成系统。
优点:
耦合度低,扩展能力强。更容易解决现实世界中更复杂的业务逻辑,组件复用性强
缺点:
前期投入成本较高,需要进行独立体的抽取,大量的系统分析和设计
面向对象的三大特征
- 封装
- 继承
- 多态
所有面向对象的语言都有着三个特征
采用面向对象的方式开发一个软件,生命周期中:
- 面向对象的分析 OOA
- 面向对象的设计 OOD
- 面向对象的编程 OOP
类和对象的概念
什么是类
类在现实世界中不存在
,是一个模板
,是一个概念
,是人类大脑思考抽象的结果。
类代表了一类事物
在现实世界中对象a与对象b之间具有共同特征,通过抽象总结出一个模板,这个模板被称为类
(其实是很多共有特征的集合)。
比如汽车类:品牌,重量,颜色,排量····
什么是对象
是实际存在
的个体。现实世界中存在。
整个软件的开发过程:
- 程序员先观察现实世界,从现实世界中寻找对象。
- 寻找了很多对象之后发现所有对象都有共同特征。
- 程序员在大脑中形成了一个
模板(类)
- java程序员可以通过java代码来表述一个类
- java程序中有了
类的定义
- 通过类就可以创建
对象
- 有了对象之后可以让对象直接协作起来形成一个系统
类到对象的过程叫做实例化
对象又被称为实例(instance)
对象到类的过程叫做抽象
重点:
类描述的是对象的共同特征
共同特征例如:身高特征
这个身高特征在访问的时候必须先创建对象,通过对象去访问这个特征。
因为这个特征具体到某个对象身上之后,具体值不同。
一个类主要描述怎样的信息?
状态+动作
状态:身高,姓名···
动作:吃,和,学习···
状态:类的属性
动作:类的方法
类=属性+方法
当状态和动作具体到某个对象上的时候,最终的结果可能不一样
类的定义
语法结构:
[修饰符列表] class 类名{
属性;
方法;
}
学生类:描述所有学生对象的共同特征:
状态信息:(是属性也是数据,就会有数据类型)
学号,名字,性别,年龄,住址
属性通常用变量
的形式来定义
动作信息:(方法)
吃饭,学习,玩,睡觉
java中有两种数据类型
基本数据类型:
byte,short,char ,int,long,Boolean,float double
引用数据类型(类的类型)
String
Student(自己写的)
System
····
生成.class文件后就可以使用了
所有.class都是引用数据类型
学生类也是一种类型,属于引用类型