一、this的意义
在Java中,this关键字比较难理解,它的作用和其词义很接近。
它在方法内部使用,即这个方法所属对象的引用;
它在构造器内部使用,表示该构造器正在初始化的对象。
二、this在类中的使用
this表示当前对象,可以调用类的属性、方法和构造器
1、this调用类的属性
this关键字可用来区分局部变量和实例变量(属性)
例如: this.name = name;
public class TestPerson {
public static void main(String[] args) {
Person p = new Person();
p.setAge(22);//当前调用setAge(22)方法的对象是p
Person p2=new Person();
p2.setAge(32);//当前调用setAge(22)方法的对象是p2
}
}
class Person{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>0 && age<130){
this.age = age;
}
}
}
2、this调用本类其他的方法
class BandAccout {
private String name;
private double balance;
//...这里省略了一下代码
public void printOwnerInfo(){
System.out.println("账户所属:"+ this.name);//使用当前类成员变量
}
public void printFullInfo(){
this.printOwnerInfo(); //调用当前类的成员方法
System.out.println("账户余额:"+this.balance);
}
}
3、this调用类的构造器(在构造器位置学)
三、关于this的说明
1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是成员成员
2.在任何时候想要表示是当前类的实例变量或成员方法时都可以在其前面添加this.,增强程序的阅读性,但不是必须的
class BandAccout {
private String name;
private double balance;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name; //区分成员变量与局部变量
}
public double getBalance() {
// return balance;
return this.balance;//虽然当前方法没与成员变量同名的局部变量,也可以在成员变量之前加this,增加可读性
}
public boolean save(double money) {
if (money > 0) {
// balance += money;
this.balance += money;//虽然当前方法没与成员变量同名的局部变量,也可以在成员变量之前加this,增加可读性,但不是必须的
return true;
}
return false;
}
public boolean withdraw(double money) {
if (money > 0 && money <= balance) {
balance -= money;
return true;
}
return false;
}
public void printOwnerInfo(){
System.out.println("账户所属:"+ this.name);
}
public void printFullInfo(){
this.printOwnerInfo();//为了程序可读性,可在成员方法之前加this
System.out.println("账户余额:"+this.balance);
}
}