this关键字的用法有三种:
(1)this(构造方法)--t它的his调用构造函数时是由参数决定
(2)this.成员变量
(3)this.方法
(4)this当返回值使用--返回的是本类的对象
例子如下代码所示:
public class Person{
private String name;
private int age;
private String sex;
public Person(){
System.out.println("111");
}
//对象是三个参数所以找到的构造器是含有三个参数构造器,,,在该构造器中又调用的是无参的构造器,因此打印的应该是 111和789
public Person(String name,int age,String sex){//对象找到的是此构造器
//1.this.(构造方法)
this();//调用上面无参的构造函数 调用的构造方法是由this后面括号的参数决定的
//2.this.成员变量
this.name=name;
this.age=age;
this.sex=sex;
System.out.println("789");
}
public void setAge(int age){//将局部变量的值传递给成员变量 不需要返回
this.age=age;//this后面是成员变量 右边是局部变量 将局部变量的值给成员变量
}
public int getAge(){
return age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setSex(){
this.sex=sex;
}
public String getSex(){
return sex;
}
//求两个人的年龄差
public int agecha(int age){
//3.this.(方法)
return this.getAge()-age;
}
public Person getInstance(){//获取person类的实例
//4.this当返回值用,返回的是本类对象
return this;//返回该实例 返回的结果相当于本类的对象
}
}
class Testp{
public static void main(String[] args){
Person p=new Person("张三",20,"男");
Person p1=new Person("李四",10,"男");
System.out.println(p.getName());
System.out.println(p.agecha(p1.getAge()));
System.out.println(p.getInstance().getAge()-p1.getInstance().getAge());
}
}