1.this关键字的用途
- this调用本类属性
- this调用本类方法
- this表示当前对象
2. 表示调用本类属性
当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。
程序就近使用原则:使用this.属性名称表示直接从类中寻找同名属性
只要在类中访问类的属性,一定要加this关键字
class Person{
private String name="lmd";
private int age=10;
public Person(String name, int age){
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
}
public class TEST2 {
public static void main(String[] args){
Person per = new Person("lll",20);
System.out.println(per.getName()+" : "+per.getAge());
}
}
3. 表示调用本类方法
this调用本类方法有以下两种情况:
a. 调用普通方法 this.方法名(参数)
若在本类中调用普通方法,一般将this加上(尤其是在有继承的情况下,使用this可以明确表示调用的是本类方法)
b.调用构造方法 this(参数)
I. 在构造方法首行使用this(参数)表示调用本类的构造方法
II. this调用构造方法不允许成环
---------->
4. 表示当前对象
当前调用的属性或方法是通过哪个对象调用的,this就指代他。
class Person{
public void fun(){
//this表示当前对象
System.out.println("[Person类的print方法]"+this);
}
}
public class test{
public static void main(String[] args){
Person per = new Person();
System.out.println("[main方法]:当前对象为:"+per);
per.fun();
System.out.println("##############################");
//此时per2 = this
Person per2 = new Person();
System.out.println("[main方法]:当前对象为:"+per2);
per2.fun();
}
}