笔记-Java基础(1)-<面向对象的特性><局部变量和成员变量>
1. 面向对象和面向过程的区别
| 面向对象 | 面向过程 | |
|---|---|---|
| 特性 | 封装、继承、多态 | 功能模块化,代码流程化 |
| 优点 | 易于维护、复用和拓展;低耦合 | 性能高 |
-
面向对象:认为世界由对象组成,对象与对象之间通过方法进行交互。以对像为中心,按功能划分问题。
优点:①结构清晰;②重用性高,易拓展、易维护
缺点:①性能较低(因为类的调用需要实例化,开销较大) -
面向过程:以事件(过程)为中心,将事件分解为一系列步骤,按顺序调用函数实现步骤。
优点:①编程流程化,任务明确;②效率性能高
缺点:①不适于处理复杂问题;②代码重用性低、拓展能力差,不便于维护
2. 面向对象的三大特性
-
封装:把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口。现实世界被描述成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
-
继承:子类可以继承父类的方法和实例变量,并根据自身的需要进行新增或修改。这体现了现实世界中一般与特殊的关系。
-
多态:多态是同一个行为具有多个不同表现形式(如George在学校是学校,在家里是儿子)。就是同一个接口,使用不同的实例而执行不同操作。具体体现在父类引用变量可以指向子类对象,如Parent p = new Child();
多态分为编译时多态(方法重载)和运行时多态(方法重写/覆盖)。
多态存在的条件:继承、重写、父类的引用指向子类对象
3.JDK、JRE、JVM的关系
JDK(Java Development Kit),Java开发工具包
JRE(Java Runtime Environment),Java运行时环境
JVM(Java Virtual Machine),Java虚拟机
Java开发工具包 包括 Java运行时环境,Java运行时环境 包括 Java虚拟机。
本节补充
创建子类的原理:
- 子类被创建时,首先会在内存(堆)中创建一个父类对象
- 然后在父类对象外部放上子类独有的属性(变量)
- 父类对象和子类独有的属性合起来就形成了一个子类对象
类的局部变量和成员变量在堆栈中的存储细节
graph LR
类的变量-->局部变量
局部变量-->基本类型:变量名和变量的值存储在栈中
局部变量-->引用类型:变量名在栈中,变量指向的对象在堆中
类的变量-->成员变量:存储在堆中
- 补充:方法存储在JVM的方法区中
JVM运行时数据区
包括 JVM栈、本地方法栈、堆、方法区、程序计数器

浙公网安备 33010602011771号