this关键字主要有以下三个方面的用途
1.this调用本类属性 ,代码实例如下:
class Humen
{
private String name;
private int age;
public void child(String name,int age)
{
this.name = name;//this调用本类属性
this.age = age;
this.print();//this调用本类普通方法
}
public String print()
{
return ("姓名:"+ name +",年龄:" + age );
}
}
public class Text
{
public static void main(String[] args)
{
Humen per = new Humen();
per.child("周",9);
System.out.println(per.print() );
}
}
2.this调用本类方法
可分为俩种情况
(1)调用普通方法,实例见上例
(2)调用构造方法,实例如下:
class person
{
private String name;
private int age;
public Person()
{
System.out.println("********产生一个新的Person对象********");
}
public Person(String name)
{
this();//调用本类无参构造
this.name = name ;
}
public Person(String name,int age)
{
this(name);//调用本类有参构造
this.age = age ;
}
public String print()
{
return ("姓名:"+ name +",年龄:" + age );
}
}
public class Text
{
public static void main(String[] args)
{
person per1 = new person();
person per2 = new person("张三");
person per3 = new person(“李四”,40);
System.out.println(per1.print());
System.out.println(per2.print());
System.out.println(per3.print());
}
}
使用this调用构造方法时请注意:
(1) this调用构造方法的语句必须在构造方法首行
(2) 使用this调用构造方法时,请留有出口
3.this表示当前对象
只要对象调用了本类中的方法,这个this就表示当前执行的对象
class Person
{
public void print()
{
System.out.println("[PRINT]方法:"+this);
}
}
public class Text
{
public static void main(String[] args)
{
Person p1 = new Person();
System.out.println("[MAIN]方法:"+p1);
p1.print();//对象调用了Person类中的方法,所以俩次输出都是p1
System.out.println("=================");
Person p2 = new Person();
System.out.println("[MAIN]方法:"+p2);
p2.print();
}
}
可以看到p1调用了Person类的print方法,所以print中的this就指代调用他的p1,所以就有下面俩次输出一样的结果
对象p2也调用了print所以输出时,this就指代p2了。