对Java语言和相关技术的回顾和进一步提升是我一直想做的一件事情,在此将复习和提升过程学到的东西简要记录,博客中相关的电子教案来自于bilibili尚硅谷的教程,只当作闲暇时的一点乐趣。
一、Java面向对象学习的主线:
- 属性、方法、构造函数;代码块、内部类、匿名类
- 2.OOP三大特性:封装性、继承性、多态性、(抽象性)
- 关键字的学习(super、this、static、final、abstract、interface、package、import.etc)
编程的两种范式,面向过程和面向对象。
- 前者强调功能行为,以函数为最小单位,考虑怎么做(算法)。
- 后者强调具备了功能的对象,以对象为最小单位,考虑由谁来做。
面向对象相对于面向过程,抽象程度更高。
二、OOP的基本元素:类和对象
- 类:类是对一类事物的描述,是抽象的、概念上的定义
- 对象:对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。
- 对象属性(field):对应类中的成员变量
- 对象行为(Method):对应类中的成员方法
- 当使用一个类创建多个对象时,每个对象都拥有独立的一套属性(非static情况下),之间是不相互影响的。
- Java对象的赋值默认情况下是传引用的,比如说:
Class Animal{
//Animal类的定义
}
Animal A = new Animal();
//这样的操作使得A、B指向堆的同一地址空间,对B的改变也会影响到A
Animal B = A;
- 类中声明的成员变量都是有默认初始值的,这意味着有默认构造方法存在:
| 类型 | 默认初始值 |
|---|---|
| 整型(byte, short, int, long) | 0 |
| 浮点型(short ,double) | 0.0 |
| 字符型(char) | 0 |
| 布尔型(boolean) | false |
| 引用数据类型(类、数组、接口) | null |
- 类的成员变量与局部变量的不同

三、对象的内存解析

具体到编程的例子,看下面这张图:

注意:
- 对象的引用,也就是对象在堆中的地址是保存在栈中的,它是局部变量。
- 具体对象的属性值是保存在堆中的。
- 当发生对象的赋值时,本质是引用(指针)的赋值,p3和p1指向了同一个地址空间。
博主记录Java复习和提升过程所学内容,围绕Java面向对象学习展开,介绍了学习主线,包括属性、方法等;阐述OOP三大特性及关键字;对比面向过程和面向对象编程范式;讲解OOP基本元素类和对象,还涉及对象的内存解析。
&spm=1001.2101.3001.5002&articleId=111397332&d=1&t=3&u=428f1063087047cbb014d0d53c237978)
520

被折叠的 条评论
为什么被折叠?



