当前位置: 首页 > 面试题库 >

有人可以向我详细解释“ this”的用法吗?

皇甫俊雅
2023-03-14
问题内容

我不太了解Java中“ this”的用法。如果有人可以帮助我澄清一下,我将不胜感激。

在此网站上显示:http
:
//docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

“在实例方法或构造函数中,这是对当前对象的引用,该对象是正在调用其方法或构造函数的对象。使用此方法,您可以从实例方法或构造函数中引用当前对象的任何成员。 ”

并给出以下示例:

例如,Point类是这样写的

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int a, int b) {
        x = a;
        y = b;
    }
}

但是它可能是这样写的:

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

但是,我仍然不完全理解为什么x = a可以写成this.x = x?为什么不是this.x = a?为什么x在左侧?

对不起,但是我对Java很陌生。对于无聊的专家,我深表歉意。


问题答案:

如果定义了一些与对象属性名称相同的变量/参数,则该变量/参数将“重叠”该属性的名称,因此应使用this.var_name。

是的,它可以写为this.x = a,但是有些多余。



 类似资料:
  • 问题内容: 情况1:这不会引起?。谁能告诉我为什么这不会导致ConcurrentModificationException。 情况2:这是由于我尝试访问AsyncThread中的线程不安全的人员列表。我可以使我的“人员列表”实现是线程安全的,并且应该可以运行。 谁能解释我到底发生了什么。我无法理解这是如何解决问题的。 案例2是否将实现从更改为推荐? 添加例外: 05-28 20:34:21.073

  • 从Web API 2的模板中,post方法总是这样的: 我不理解这个< code>CreatedAtRoute()方法。有人能给我解释一下吗?

  • 问题内容: 有人可以在hibernate状态下向我解释吗?我很难理解它。 如果可以举一个例子来解释它,那就最棒了,并且它在哪种用例中最适用? 问题答案: 这是Object DB的一个很好的解释。 指定ManyToOne或OneToOne关系属性,该属性提供EmbeddedId主键,EmbeddedId主键内的属性或父实体的简单主键的映射。value元素指定关系属性所对应的组合键中的属性。如果实体的

  • 我从一位同事的代码中读到了这几行: 我认为这将为Bean classA和classB创建2个数据源。为了注入数据源,我们需要如下内容: 但是Spring只创建了一个数据源,this.mysqlDataSource()每次都返回相同的数据源。它是怎么发生的?如果我确实需要另一个数据源,我需要立即创建它?

  • 本文向大家介绍有人可以向我解释JavaScript变量之前的加号吗?,包括了有人可以向我解释JavaScript变量之前的加号吗?的使用技巧和注意事项,需要的朋友参考一下 变量之前的加号(+)定义您要使用的变量是数字变量。 在下面的代码中,有关于加号的简短描述。以下是代码- 示例 要运行上述程序,您需要使用以下命令- 输出结果 在这里,我的文件名为demo149.js。这将产生以下输出-

  • 问题内容: 越来越多地使用Python,并且不断看到在不同文件中设置的变量。有人可以解释这是什么吗? 问题答案: 这是该模块的公共对象的列表,由解释import 。它覆盖了默认的内容,即隐藏以下划线开头的所有内容。