2016-08-02 9 views
-2

コードブロック番号1これらの2つのメソッド呼び出しは同じですか?

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() { 

    } 
} 

は、この2つのコードブロック(番号1および2)同じですか?私はメソッドを呼び出すときに異なる構文で混乱しています。誰かが私のためにそれを説明することができれば感謝します。

答えて

5

はい、機能的には同じです。ただし、コードブロック2を使用すると、プログラムの将来の寿命で作成したSomeClassオブジェクトにアクセスする方法がありません。

+1

いずれにしても将来アクセスする方法はありません。 fooは破棄されています。 – alzee

1

はい同じです。最初の場合、オブジェクト参照は、将来の使用のために参照変数に格納されます。
第2の場合、参照は格納されません。

関連する問題