java - 使用此差异的构造函数参数?

标签 java variables parameters

我有两个类(class)。它们都在构造函数中引用相同的变量。我很困惑,当我使用 this.name 时,我不需要更改参数的名称,Java 编译器知道我指的是主变量吗?

在第二个类示例中,参数名称已更改但未使用 this。 这两个类之间有什么不同? 他们都被认为是“好的编程”吗?

class Account {
     private string name;
     private int amount;

     Account(String name, int amount) {
      this.name = name;
      this.amount = amount;
     }
    }

class Account {
 private string name;
 private int amount;

 Account(String n, int a) {
  name = n;
  amount = a;
 }   
}

最佳答案

在这种情况下 Account(String name, int amount) 如果您的代码显示 name = "ABC";,它正在设置参数 name,不是成员(member)。如果你想设置成员,你需要通过this.name引用它。

因此 name = name; 什么都不做(将参数设置为自身)。 this.name = name; 将成员设置为参数。

关于java - 使用此差异的构造函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802720/

相关文章:

今天在 sql 数据库中的 Java INSERT

java - 无法使用不同的用户 ID 登录我的 Facebook 与 Android 应用程序集成

java - 如何在 Java 中作为 Sub 退出

java - 如何在Java中的方法之间传递变量?

javascript - "To Be or Not to Be"关于 JavaScript 中的变量

java - 使用公式或变量组合声明变量

java - 如何将基类中的字段很好地复制到派生类中?

C# 方法重载参数

php - Symfony2 404 错误 : Object Not Found (ParamConverter error)

java - 如何将接口(interface)中测试的值传递给 Java 代码?