2011-02-24 10 views
-1

私は完全に理解していないコードを見ています。これは見た目です:クラス名の静的メソッドまた、

public static ClassName MethodName(int parameter){ 
    //Method does its thing 
} 

このタイプのコードパターンの名前はありますか?また、それは何のために使われていますか?

+1

このメソッドを書いた人はユーモアの奇妙な感覚を持っていた – BrokenGlass

+0

"クラス名も"ではありません。 ClassName型のものを返します。独自のクラスでも、別のクラスでもかまいません。それは 'static void ClassName MethodName()'ではない –

答えて

2

これは単にタイプClassNameのオブジェクトを返す静的メソッドです。それがClassNameクラスの中で宣言されているということですか?これはうまくいきます。それは、問題のクラスがそれ自身のインスタンスを返す静的メソッドを持っていることを意味します。これは、たとえばFactory Patternで一般的に使用されます。クラスのインスタンスを手動でインスタンス化するのではなく、インスタンスを返す静的メソッドが呼び出されます。

+0

私の投稿から最初の単語の単語をコピーしましたか? = P –

+0

@エド・S .:ヘー、それに気付かなかった。私たちはお互いに1分以内でした:)私はめったに「新しい回答を読み込む」リンクをクリックすることはほとんどありません。私はそれが気が散っているのを見つけ、コピーするように誘惑された。それは良い答えを与える追求の中で自分自身を失望させます:) – David

+0

うわー、もちろんそれは答えです。私はなぜこのような単純なことを理解できなかったのか分かりません。私はpublic int doStuff()を見るのに慣れているので、通常、変数型はクラス全体ではなく戻り値の型です。ありがとう – sooprise

1

これは単に "ClassName"タイプのオブジェクトを返す静的メソッドです。ファクトリーメソッド(?)のように見える

また、それは何のために使用されていますか?

あなたの例で定義されていないので、実際に見ることはできません。これは、汎用名を持つ単なるメソッドシグネチャです。

0

例では、メソッドはクラスClassNameのインスタンスを返します。

これは実際にpublic static String MethodName()に相当する他の方法と同等です。同じクラスのインスタンス、つまりファクトリメソッドを返すクラスに静的メソッドを作成するのはかなり一般的です。

0

これは単なるクラスメソッドです。あなたはそれを呼び出すために何かをインスタンス化する必要はありません。インスタンスがなければ、静的でない(クラス以外の)変数を呼び出すことができないため、他の静的メソッドやフィールドにしかアクセスできません。

関連する問題