在方法调用、参数传递过程中,极有可能出现参数名称与实例变量名同时的情况。在一个方法内,可以定义和成员变量同名的局部变量或参数,此时成员变量被屏蔽。
作用1:区别成员变量和局部变量
public class Student{
private String name;
public void setName(String name){
this.name = name;
System.out.print(name);
String name;
name = "tom";
}
}
作用2:
public class Student{
private String name;
public void setName(String name){
this.name = name;
}
public void print(){
//表示调用当前类中的setName方法
this.setName("tom");
//setName("tom");
//在类中可以表示当前类的对象
System.out.println("this:"+this);
}
public static void main(String[] args){
Student s = new Student();
s.setName("tom");
System.out.println("s:"+s);
}
}
作用3: 在类的构造器中用this关键字可以调用类的其他的构造器
1.this只能出现在构造函数代码块中的第一句(前提是this这个时候代表的是调用其他构造器)
2.由this调用的构造器不会再创建新的对象
例如:
public class Car{
private String name;
private double price;
public Car(){
//无参构造器中调用了一个参数的构造器
this("tom");
}
public Car(String name){
//一个参数的构造器中调用了俩个参数的构造器
this(name,100000);
}
public Car(String name,double price){
this.name = name;
this.price = price;
}
}