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

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

相关文章
|
3月前
|
C++
c++类与对象(五):友元、内部类、临时对象、匿名对象
c++类与对象(五):友元、内部类、临时对象、匿名对象
22 0
|
8月前
|
Java
属性与this关键字
属性与this关键字
27 0
|
8月前
|
编译器
匿名对象与构造器
匿名对象与构造器
48 0
|
9月前
|
Java 编译器
构造函数中为什么要用this关键字?
构造函数中为什么要用this关键字?
46 0
|
11月前
this关键字的使用注意
this关键字的使用注意
|
编译器 C++
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
135 0
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
|
JavaScript 前端开发 Java
构造函数和原型链详解
在典型的OOP语言中(如Java),都存在类的概念,类就是对象的模板,对象就是类的实例,但在ES6之前,JS中并没有引入类的概念。
111 0
构造函数和原型链详解
|
JavaScript
6、this关键字
6、this关键字
68 0
6、this关键字
|
存储 设计模式 安全
如何理解子类对象赋值给父类(深入理解动态绑定、静态绑定)
如何理解子类对象赋值给父类(深入理解动态绑定、静态绑定)
如何理解子类对象赋值给父类(深入理解动态绑定、静态绑定)
|
自然语言处理 JavaScript 前端开发
浅谈一下this关键字
浅谈一下this关键字
64 0
浅谈一下this关键字