this关键字

简介: this关键字

为什么需要this关键字

下面我们通过下面的代码来体会一下

class Test{
    public static void main(String[]args){
        User user=new User("tom");
        System.out.println(user.name);


    }

}

class User{

    String name;
    int age;
    public User(String name){
        name=name;
    }
}

最后输出的结果是null,和我们想象的结果不一样,原因是变量是有它的作用域的,而且是就近原则,构造器里面左边的name是形参里面的name,而不是User类里面的name,这样子就和我们的要求不一样了,所以需要使用this关键字

this关键字

this指的是当前对象

class User{

    String name;
    int age;
    public User(String name){
        this.name=name;
    }
}

this.name指的就是当前对象的name,而不是形参的name
在这里插入图片描述
在这里插入图片描述

this关键字的注意事项

1) this 关键字可以用来访问本类的属性、方法、构造器
2) this 用于区分当前类的属性和局部变量
3) 访问成员方法的语法: this.方法名(参数列表);

4) 访问构造器语法: this(参数列表); 注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一 条语句)
5) this 不能在类定义的外部使用,只能在类定义的方法中使用。

this的理解

一个对象有一个this,this指的是当前对象

保存内存地址指向自身
在这里插入图片描述

相关文章
|
2月前
|
JavaScript 前端开发 开发者
创建一个私有变量和私有方法的闭包
【10月更文挑战第26天】可以在JavaScript中创建具有私有变量和私有方法的闭包,实现数据的封装和隐藏,提高代码的可维护性和安全性。不同的方式适用于不同的场景,开发者可以根据具体的需求选择合适的方法来创建闭包。
|
8月前
|
C++
c++类与对象(五):友元、内部类、临时对象、匿名对象
c++类与对象(五):友元、内部类、临时对象、匿名对象
49 0
|
编译器 C++
类和对象:初始化列表,静态成员,友元,内部类,匿名对象
类和对象:初始化列表,静态成员,友元,内部类,匿名对象
|
测试技术 uml
super关键字
super关键字
60 0
|
Java 编译器
构造函数中为什么要用this关键字?
构造函数中为什么要用this关键字?
82 0
|
编译器
Super关键字详解
Super关键字详解
93 0
|
C++
类和对象中类对象作为类成员
类和对象中类对象作为类成员
69 0
|
JavaScript
6、this关键字
6、this关键字
95 0
6、this关键字
|
自然语言处理 JavaScript 前端开发
浅谈一下this关键字
浅谈一下this关键字
92 0
浅谈一下this关键字