【问题标题】:Are these two method calls the same? [duplicate]这两个方法调用是否相同? [复制]
【发布时间】:2016-08-02 15:10:53
【问题描述】:

代码块编号 1。

public class SomeClass {
    public static void main(String [] args) {
        SomeClass foo = new SomeClass();
        foo.SomeMethod();
    }
    public void SomeMethod() {

    }
}

代码块编号 2。

public class SomeClass {
    public static void main(String [] args) {
       new SomeClass().SomeMethod();
    }
    public void SomeMethod() {

    }
}

这两个代码块(编号 1 和 2)是否相同?在调用该方法期间,我对不同的语法感到困惑。如果有人可以为我解释一下,我将不胜感激。

【问题讨论】:

    标签: java


    【解决方案1】:

    是的,它们在功能上是相同的。但是,使用代码块 2,您无法访问您在程序的未来生命周期中创建的 SomeClass 对象。

    【讨论】:

    • 无论哪种情况,将来都无法访问它; foo 正在被丢弃。
    【解决方案2】:

    是的,它们是相同的。在第一种情况下,对象引用只是存储在引用变量中以供将来使用。
    在第二种情况下,不存储引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2013-10-07
      相关资源
      最近更新 更多