**1.上节课学习了Java对象的定义和使用,我们知道了对象是存在堆内存中的,Java要求程序员不能直接操作堆内存,因此出现了引用的概念。引用的实质是一个存放对象地址的局部变量。
定义一个对象的语法:
**Student s1 = new Student();
s1是一个学生类的局部变量。
This关键字
//this 本质上是一个引用。
// this 中保存的也是对象的内存地址。
// this 中保存的是当前对象的内存地址。
this.实例变量名;
this.实例方法();
this大多数情况下是可以省略的,当this应用在当前类中是可以省略的,但是当一个方法中局部变量与实例变量重名时,则用this.来区分实例变量与局部变量。如下代码块所示:
public void setSpeed(int speed){
if (speed < 0) {
System.out.println("速度不正确");
return;
}
this.speed = speed;
}
this在内存图中的位置示意图:
解说:this存放在实例方法的局部变量表的0号槽位,当调用实例方法,就会将引用的地址复制一份传给this,并固定的存放在0号槽位;