带你快速了解java中的this用法

 2023-02-23 22:46:58  阅读 0

一、this是干吗的

在java中的this关键字主要有三个应用:

(1)this调用本类中的属性,也就是类中的成员变量;

(2)this调用本类中的其他方法;

(3)this调用时要放在构造方法的首行。话不多说上代码

public class User {
    private String name;
    private double balance;
    private String pwd;
    
    
    public User (String name,double balance,String pwd){
     
        this.name = name;
        this.balance = balance;    
        this.pwd = pwd;
    }
}

那么我们如果不使用this会发生什么那?

class User {
    private String name;
    private double balance;
    private String pwd;

   
    public User(String name, double balance, String pwd) {
        //构造器的实现---初始化对象
        //不用this
        name = name;
        balance = balance;
        pwd = pwd;
    }

    public void showInfo() {
        System.out.println("name:" + name + " " + "balance:" + balance + " " + "pwd:" + pwd);
        return;
    }
}

public class Main {
    public static void main(String[] args) {
        User account = new User("Yaya", 2, "456");
        account.showInfo();
    }
}

结果:所有属性输出均为NULL

为什么会这样那,我们明明已经赋值了。

原来如果我们不用this那么我们使用的就是局部变量,局部变量被局部变量赋值自然不会保留,所以我们用this,这样使用的就是成员变量。

例如,当我们把this()放在有参构造函数的末尾时,例如用this("哈哈");我们先不管语法是否有错误,试着按照程序的运行来判断一下结果,我们可以看出,当在创建对象时,假定调用含有this(“哈哈”)的构造函数,则刚开始存放的值,会被this(“哈哈”)调用的只含有一个参数的构造函数覆盖,也就是说,最后的name会变成“哈哈”,这是与我们的初衷相违背的,而且运行结果也是报错,当我们换到构造方法的第一句时,则不会有这种错误,因为它并不会影响到后面name的赋值。
 

 

上一篇: JAVA按位与运算
标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码