在Java编程中,this关键字是一个非常重要且常用的概念。对于初学者来说,理解this关键字的实际用途和工作原理,对于掌握面向对象编程(OOP)的基本概念至关重要。
this ,翻译为:这、这个,在java中应该翻译为 “本对象” 或 “对象本身” ,指向的是对象自己
类似于日常的称呼,比如,别人称呼你的时候应该用姓名,比如称呼“赵云”,赵云很帅、赵云武功很强,但是赵云自己称呼自己应该用“我”,赵云:我很帅、我武功很强。而“我”就相当于this。
this 其实就是一个变量,本质上和普通的引用类型变量一样。
比如上面的称呼,无论称呼“赵云”、“我”、“你”,本质都是称呼,而且称呼的对象都是赵云。
this也是如此, 和其他该类的引用类型变量一样,本质都是变量,指向的也是同一个对象,只不过this是内置的变量而已。 作者:老左讲技术 https://www.bilibili.com/read/cv21678386/ 出处:bilibili
this
关键字是Java中的一个特殊引用变量,它持有当前对象的引用。在类的非静态方法和构造函数中,可以使用this
关键字访问当前对象的成员变量和方法。简单来说,this
关键字可以理解为“当前对象自身”的代称
也就是说this出现在成员方法、构造器中代表当前对象的地址也是指向当前对象的引用,局部变量的名字与成员变量的名字相同时,若想在该方法内使用成员变量,必须使用关键字。this出现在构造器或方法中,哪个对象调用它们,this就代表哪个对象。
this
关键字的基本用法
1. 访问当前对象的成员变量
当局部变量和成员变量同名时,可以使用 this 关键字来引用成员变量,以区分局部变量和成员变量。。例如:
public class Student {
private String name;
public Student(String name) {
this.name = name; // this.name 表示成员变量,name 表示构造函数参数
}
public void setName(String name) {
this.name = name; // this.name 表示成员变量,name 表示方法参数
}
public String getName() {
return this.name; // 访问当前对象的成员变量
}
}
在上述例子中,this.name
指的是成员变量name
,而不带this
的name
则是方法或构造函数的参数
2. 调用当前对象的方法
可以使用this
关键字调用当前对象的方法:
public class Student {
private String name;
public Student(String name) {
this.name = name;
}
public void displayInfo() {
System.out.println("Student name: " + this.name);
}
public void showInfo() {
this.displayInfo(); // 调用当前对象的displayInfo方法
}
public static void main(String[] args) {
Student student = new Student("Alice");
student.showInfo(); // Output: Student name: Alice
}
}
在showInfo方法中,使用this.displayInfo()调用了displayInfo方法,可以清晰地表明这是调用当前对象的displayInfo方法。
3. 调用当前类的构造函数
在类的构造函数中,可以使用this关键字调用另一个构造函数。这种用法称为“构造函数重载”,它可以简化构造函数的编写,减少代码重复。需要注意的是,调用构造函数的语句必须是构造函数中的第一条语句。
public class Student {
private String name;
private int age;
public Student(String name) {
this(name, 18); // 调用另一个构造函数
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public void displayInfo() {
System.out.println("Student name: " + this.name + ", age: " + this.age);
}
public static void main(String[] args) {
Student student1 = new Student("Alice");
student1.displayInfo(); // Output: Student name: Alice, age: 18
Student student2 = new Student("Bob", 20);
student2.displayInfo(); // Output: Student name: Bob, age: 20
}
}
this
关键字是Java中的一个重要概念,它指向当前对象的实例。通过this
关键字,我们可以引用当前对象的成员变量、调用当前对象的其他方法,甚至在构造方法中调用其他构造方法。这使得代码更加清晰、可读性更高,并提供了对当前对象的灵活访问和操作。
练习:
定义一个Car类,一个属性name,一个属性price,一个属性speed
申明一个构造方法Car(name,price),第二个构造方法Car(name,price,speed)
在第二个构造方法里使用this调用第一个构造方法。之后为speed赋值。