this关键字

一、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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值