在 Java 编程的世界里,this 关键字就像一把钥匙,帮助我们打开了对象内部的大门,能够精准地操作对象的属性和方法。通过对 this 关键字的深入学习,我们能够更加高效地构建 Java 类和对象,编写出结构清晰、逻辑严谨的程序。希望大家在后续的编程实践中,能够熟练运用 this 关键字,让你的代码更加简洁和准确,在 Java 开发的道路上越走越顺。
一、this 关键字的基本概念
Java 虚拟机会给每个对象分配 this,它代表当前对象。然而,要透彻理解 this 并非易事。我们可以打个比方,就像《上帝创世界小故事》一样,理解 this 也需要我们深入剖析。
二、通过代码示例分析 this 关键字
(一)第一个示例
- 代码展示
public class This01 {
public static void main(String[] args) {
Dog dog1 = new Dog("大壮", 3);
System.out.println("dog1的hashcode=" + dog1.hashCode());
dog1.info();
System.out.println("============");
Dog dog2 = new Dog("大黄", 2);
System.out.println("dog2的hashcode=" + dog2.hashCode());
dog2.info();
}
}
class Dog{
String name;
int age;
public Dog(String name, int age){
//this.name和this.age分别代表当前对象的属性
this.name = name;
this.age = age;
System.out.println("this.hashCode=" + this.hashCode());
}
public void info(){
System.out.println("this.hashCode=" + this.hashCode());
System.out.println(name + "\t" + age + "\t");
}
}
- 分析
- 在
Dog
类的构造器中,参数name
和age
是局部变量。如果没有this
关键字,直接使用name = name
和age = age
,只是将局部变量赋值给自身,无法给对象的属性赋值。 - 通过
this.name = name
和this.age = age
,this.name
和this.age
指向的是当前对象的属性,这样就能正确地将传入构造器的参数值赋给对象的属性。
- 在
三、this 关键字的注意事项和使用细节
- 访问本类成员
- this 关键字可以用来访问本类的属性、方法、构造器。
- 区分属性和局部变量
- 当局部变量和类的属性同名时,this 用于区分当前类的属性和局部变量。例如在构造器中,当形参名和属性名相同时,使用 this 来指代属性。
- 访问成员方法
- 语法为
this.方法名(参数列表)
。
- 语法为
- 访问构造器
- 语法为
this(参数列表)
,但要注意只能在构造器中使用,并且必须放在第一条语句。
- 语法为
- 使用范围限制
- this 不能在类定义的外部使用,只能在类定义的方法中使用。
四、this 关键字的课堂案例
(一)案例展示
- 测试类
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person("mary", 20);
Person p2 = new Person("mary", 20);
System.out.println("p1和p2比较的结果=" + p1.compareTo(p2));
}
}
- Person 类
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public boolean compareTo(Person p) {
return this.name.equals(p.name) && this.age == p.age;
}
}
- 分析
- 在
Person
类的构造器中,this.name = name
和this.age = age
用于将传入的参数赋值给对象的属性。 - 在
compareTo
方法中,this.name
和this.age
分别代表当前对象的name
和age
属性。通过比较当前对象和传入对象的name
和age
属性,判断两个人是否相等。如果名字和年龄完全一样,就返回true
,否则返回false
。
- 在
this 关键字在 Java 中是一个重要的概念,正确地理解和使用它对于编写面向对象的程序至关重要。