【问题标题】:difference between X x = new X(); and x = new X(); [duplicate]X x = new X(); 之间的差异和 x = 新 X(); [复制]
【发布时间】:2021-10-07 01:35:48
【问题描述】:

假设我已经创建了类,现在在 main 方法中,我想分配和调用它们。

我写:X x = new X();x = new X();

这两者之间有什么区别/区别?

【问题讨论】:

标签: java class


【解决方案1】:

假设X 是一个具有无参数构造函数(例如默认构造函数)的类,则以下工作:

    // Declare and initialize x
    X x = new X();
    // Assign new value to x
    x = new X();

第一行代码声明了一个变量x,并将对X 的新实例的引用分配给它(一个新的X 对象)。第二行将一个新的X 实例分配给已声明的变量x(从而丢弃对第一个对象的引用)。我们通过将类型名称(或单词var)放在变量之前来声明一个变量。所以因为在第一行,我们有X x,这是一个声明。

在 Java 中,变量需要在首次使用之前进行声明。因此,如果没有前面的类型名称 X,第一行代码将无法工作。 Java 会抱怨变量x 没有被声明。

另一方面,我们只能声明每个变量一次。所以将类型名称X 放在第二行之前也是一个错误。我的 Eclipse 说 Duplicate local variable x 因为它“认为”我正在尝试声明另一个名为 x 的变量,这是不允许的(有充分的理由)。

【讨论】:

  • 当我们说“新实例”时,这是什么意思?
  • X 的实例是从类X 创建的对象。 @jjavid
猜你喜欢
  • 2021-07-31
  • 2021-01-24
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2021-09-11
  • 2021-10-28
相关资源
最近更新 更多