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指的是当前对象

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

相关文章
|
15天前
|
JavaScript 前端开发 开发者
创建一个私有变量和私有方法的闭包
【10月更文挑战第26天】可以在JavaScript中创建具有私有变量和私有方法的闭包,实现数据的封装和隐藏,提高代码的可维护性和安全性。不同的方式适用于不同的场景,开发者可以根据具体的需求选择合适的方法来创建闭包。
|
5月前
|
存储 数据安全/隐私保护 C++
C++一分钟之-C++中的静态成员与静态函数
【6月更文挑战第20天】在C++中,静态成员(变量&函数)打破对象实例化规则,提供类级共享。静态变量独占一份,用于计数或共享配置,需类外初始化,注意访问权限。静态函数不依赖对象,直接通过类名调用,不使用`this`指针,适合工具函数或操作静态变量。示例展示了静态成员的使用,强调了理解和避免常见问题的重要性。
54 4
|
Java
属性与this关键字
属性与this关键字
52 0
|
6月前
|
C++
c++类与对象(五):友元、内部类、临时对象、匿名对象
c++类与对象(五):友元、内部类、临时对象、匿名对象
42 0
|
编译器
匿名对象与构造器
匿名对象与构造器
70 0
|
Java 编译器
构造函数中为什么要用this关键字?
构造函数中为什么要用this关键字?
77 0
|
编译器 C++
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
157 0
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
|
JavaScript
6、this关键字
6、this关键字
89 0
6、this关键字
|
自然语言处理 JavaScript 前端开发
浅谈一下this关键字
浅谈一下this关键字
90 0
浅谈一下this关键字