1、类 与 对象
- 类(class)对象(Object)是面向对象核心概念。
- 类是对一类事物的描述,是抽象的、概念上的定义
- 对象是实际存在该类事物的每个个体
2、对象内存解析
(1)堆(Heap):此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。(JVM规范描述:所有对象实例以及数组都在堆上分配)
(2)虚拟机栈(stack):用于存储局部变量等。局部变量表达存放类编译期可知长度的各种基本数据类型(byte、short、int、long、double、float、boolean、对象引用)。方法执行完自动释放。
(3)方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。
3、属性与局部变量的对比
(1)不同点:
- 属性直接定义在类的一对{}内,而局部变量声明在方法内、方法形参、代码块内、构造器内部的变量。
- 属性可以在声明时指明权限问题,局部变量不可以使用权限修饰符。
- 属性加载到堆空间中的,而局部变量加载到栈空间。
4、方法重载(OverLoadTest)
(1)重载概念
- 在同一个类中,允许存在一个以上同名方法,只要它们的参个数或者参数类型不同即可。
(2)方法参数的值传递机制
- 如果参数是基本数据类型,此时实参数赋给形参真实存储的数据值。
- 如果参数是引用数据类型,此时实参数赋给形参真实存储的地址值。
(5)递归方法的使用
- 递归方法:一个方法体内调用它自身
- 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无必循环控制
- 递归一定要axing已知方向递归,否则这种递归就变成了无穷递归,类似死循环。
public static int getSum(int n) {
if (n == 1) {
return 1;
} else {
return n + getSum(n - 1);
}
}
public static int getSum1(int n) {
if (n == 1) {
return 1;
} else {
return n * getSum(n - 1);
}
}
5、构 造 器
- 构造器作用:创建对象
6、JavaBean
- JavaBean是一种Java语言写成的可重用组建
- 所谓JavaBean,是符合以下标准的Java类
- 类是公共的
- 有一个无参的公共构造器
- 有属性,且有对应的get、set方法
没有回复内容