this是指向当前对象的引用,也就是指向调用当前方法的那个对象。
例如以下代码:
public class Person {
String name;
String gender;
int age;
Person() {
System.out.println("一个人从世界上诞生了...");
}
Person(String name, String gender, int age) {
this.name = name; //this指向了主方法中的new Person("张三","男",35);这个对象。
this.gender = gender;
this.age = age;
}
public static void main(String[] args) {
Person p1 = new Person("张三", "男", 35);
}
}
例如:
class Book{//定义书的类
private String name;//书的名字
private double price;//书的价格
public Book(String name,double price){
this.name = name;
this.price = price;
}
public String getInfo(){
return "书籍:" +this. name + ",价格:" +this. price; //this.name 调用当前对象的属性
}
}
public class Test{
public static void main(String args[]){
System.out.println(new Book("Java",89.9).getInfo());
}
}
this还有一个重要的作用就是当局部变量(方法体内的变量)的名字与成员变量重名时,我们可以使用this关键字来区分是成员变量还是局部变量。例如上述代码中,this.name=name; 表示把局部变量name赋值给成员变量name。
例如:
//人类
public class Person {
String name;
String gender;
int age; //实例变量,属性,成员变量
Person() {
System.out.println("一个人从世界上诞生了...");
}
Person(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public void sleep(){
System.out.println(this.name+"正在睡觉zzz...");
}
public void intoRestRoom(){
System.out.println(this.name+"进入休息室...");
this.sleep(); //调用当前对象的成员方法
}
public static void main(String[] args) {
Person p1 = new Person("张三", "男", 35);
p1.intoRestRoom();
}
}
this可以在构造方法中调用本类其它构造方法,但是必须出现在构造方法的第一句。 例如:在设计人类时,要求每创建一个人类对象都必须打印"一个人从世界上诞生了...",可以在Person类的带参数的构造方法中去调用默认不带参数的构造方法。
代码如下:
//人类
public class Person {
String name;
String gender;
int age; //实例变量,属性,成员变量
Person() {
System.out.println("一个人从世界上诞生了...");
}
Person(String name, String gender, int age) {
this(); //调用本类的其它构造方法,必须出现在构造方法的第一句。
this.name = name;
this.gender = gender;
this.age = age;
}
public void sleep(){
System.out.println(this.name+"正在睡觉zzz...");
}
public void intoRestRoom(){
System.out.println(this.name+"进入休息室...");
this.sleep(); //调用当前对象的成员方法
}
}
1.this是指向当前对象的引用,指向调用当前方法的哪个对象。
2.this可以调用当前对象的属性、成员方法和构造方法。在成员方法中this可以用来区分局部变量和成员变量。
3.this可以在构造方法中调用本类的其它构造方法,要求必须出现在构造方法的第一句。