这两种方法是否一样?

时间:2016-08-02 15:10:53

标签: java

代码块编号为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)是否相同?在调用方法时,我对不同的语法感到困惑。如果有人能为我解释,我感激不尽。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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