2012-04-18 3 views
-2

静的クラスは、オブジェクトのインスタンス上では機能しません。次に、「作業中」のオブジェクトのインスタンスを特定しますか?これは具体的なものかどうか(つまり、メソッドのパラメータに新しいObjectA()を渡します)。だから、これが私が見るものなら、クラスは静的であってはいけません。「オブジェクトのインスタンスで動作する」クラスの識別

おかげ

+4

この質問はあまりにも曖昧です。コード例を提供できますか? –

+0

あなたの質問は何か分かりません...どこかのガイドラインがありますか?すなわち、拡張方法は、設計上、「オブジェクトのインスタンス上で作業する」ものである。 –

+0

すべてがオブジェクトのインスタンス上で動作します。コンテキスト外ではあるものの、あまりにも野生的であり、聞こえないように聞こえません。 – NSGaga

答えて

1

静的クラスは、単にそのオブジェクトのインスタンスが1つだけ存在することを意味します。 静的クラスは、そのインスタンスが1つしかない場合、単に動作します。それをグローバルと考えてください。静的クラスのオブジェクトをインスタンス化することはできません。クラスのメンバ変数の値は、その値をグローバルに保持し、メンバ関数を使用してそのメンバ変数を「処理」することができます。これは静的クラスであるとしたら

vehicle honda = new vehicle(); 
honda.fuelup(10); 
honda.value.ToString(); 

:新しいオブジェクトやメンバ関数を持つこれらのオブジェクトの「仕事」を作成することができます非静的クラスに、静的クラスとは対照的に

上記の例では、クラス型車両のオブジェクトhondaを作成しました。次に、関数を使ってオブジェクトを「処理」しました。静的クラスの場合、 にオブジェクトを作成できません。オブジェクト名(hondaなど)の代わりにクラス名を呼び出します。要約すると

:グローバル

  • 静的=グローバル、1つのインスタンス
  • 静的=、それは=唯一のインスタンス(プログラムitelf?)
  • 非静的だった IF ASローカルスコープ、多くのインスタンス

これで問題が解決しない場合は、明確な質問をしてください。

+2

これは間違った情報です。静的クラスはインスタンス化できません。また、「1つのインスタンスのみのクラス」ではありません。 –

+1

@marcofは正しいですが、静的クラスにはインスタンスがありません。静的とは、メンバーがインスタンスではなくタイプに関連付けられていることを意味します。 –

+0

それは間違いだと私は謝罪し、正しいです。私はこれを別に書かなければならないはずです。静的クラスは、ただ1つのインスタンスであればそのまま動作します。私は "静的クラス"という考えは、単にプログラムに "グローバル関数"を与えることであると思います。私はいくつかのオブジェクトがシーンの裏側に作られているかどうかはわかりません(私はそれを疑う)。これを指摘してくれてありがとう。 –

関連する問題