构造方法
又叫构造器
作用
给成员变量赋初始值, 构造方法和其他方法一样也可以重载。对象的成员变量一般在创建对象时赋初始值。
语法
与类同名,没有返回值类型,甚至没有void
如果没有定义构造函数,则编译器会自动定义一个无参的构造函数,如果已定义则编译器不会自动添加。
调用
当实例化一个对象时会自动调用构造方法。
快捷键
IDEA中用alt+insert快速生成构造函数
成员变量与局部变量
成员变量,作用域是整个类;
局部变量,作用域是当前方法;
java规定,成员变量和局部变量是可以同名的。
如果同名,采用就近原则,如果要强制使用成员变量,需要使用this关键字。
成员变量的分类
实例变量和静态变量
- 实例变量:没有static修饰,属于对象的,存储在堆中,通过对象打点访问
- 静态变量:有static修饰,属于类的,存储在方法区中,通过类名打点访问
class Demo{
int a;//实例变量
static int b;//静态变量
}
内存管理
由JVM来管理
- 堆:new出来的对象(包括成员变量、数组的元素、方法的地址)、
- 栈:局部变量(包括方法的参数)
- 方法区:class字节码文件(包括所有方法、静态变量)
1)用到哪个类,就会将哪个类的.class加载到方法中
2)调用方法时,方法就会入栈,方法执行完后,方法就会出栈
3)new出来的对象存储在堆中,引用里面装的是堆中对象的地址