タグ付けされた質問 「static」

静的とは、特定のオブジェクトインスタンスにバインドされていない関数またはデータストレージ領域(フィールド)を定義するために一部のプログラミング言語で使用される用語です。ほとんどの場合、このタグを使用する場合は、特定のプログラミング言語タグと組み合わせて使用​​する必要があります。

21
プライベートヘルパーメソッドは、静的である可能性がある場合、静的である必要があります。
インスタンス化するように設計されたクラスがあるとします。クラス内には、クラスメンバーへのアクセスを必要とせず、引数のみを操作して結果を返すプライベート "ヘルパー"メソッドがいくつかあります。 public class Example { private Something member; public double compute() { double total = 0; total += computeOne(member); total += computeMore(member); return total; } private double computeOne(Something arg) { ... } private double computeMore(Something arg) {... } } 特定する特別な理由はありますか computeOnecomputeMore静的メソッドとして、または特別な理由はありませんか? 問題がなくても静的である可能性がありますが、非静的のままにしておくのが最も簡単です。


9
staticキーワードとC ++でのさまざまな使用法
キーワードstaticはC ++でいくつかの意味を持つものですが、私は非常に混乱し、実際にどのように機能するのかを気にすることはありません。 私が理解していることからstatic、ストレージ期間があります。これは、グローバルの場合、プログラムの存続期間中持続することを意味しますが、ローカルについて話すとき、それはデフォルトでゼロに初期化されることを意味します。 C ++標準は、キーワードを持つクラスデータメンバーに対してこれを述べていますstatic。 3.7.1静的ストレージ期間[basic.stc.static] 3キーワードstaticを使用して、静的ストレージ期間を持つローカル変数を宣言できます。 4クラス定義のクラスデータメンバーにキーワードstaticを適用すると、データメンバーに静的ストレージ期間が与えられます。 ローカル変数とはどういう意味ですか?それは関数ローカル変数ですか?関数をローカルで宣言すると、関数staticは一度だけ初期化されるため、最初にこの関数に入る場合もあります。 また、クラスメンバーに関してストレージ期間についてのみ話します。インスタンス固有ではstaticないのはどうですか。それはまた、noのプロパティですか?それとも保管期間ですか? ではstatic、ファイルスコープの場合はどうでしょうか。すべてのグローバル変数は、デフォルトで静的ストレージ期間があると見なされますか?以下(セクション3.7.1から)はそう示しているようです。 1動的ストレージ期間がなく、スレッドストレージ期間がなく、ローカルでないすべての変数は、静的ストレージ期間を持ちます。これらのエンティティのストレージは、プログラムの期間中継続します(3.6.2、3.6.3)。 static変数のリンケージにはどのように関係しますか? この全体のstaticキーワードは、紛れも誰かがそれ英語のためのさまざまな用途を明確にしても私に言うことができ、混乱している時に初期化するためにstatic、クラスのメンバーを?
195 c++  static 

2
関数内の静的constexpr変数は意味がありますか?
関数(たとえば、大きな配列)内に変数がある場合、両方staticとそれを宣言することは意味がありconstexprますか?constexpr配列がコンパイル時に作成されることを保証するので、static役に立たないでしょうか? void f() { static constexpr int x [] = { // a few thousand elements }; // do something with the array } されstatic、実際に生成されたコードや意味論の面でそこに何かをやって?
192 c++  static  c++11  constexpr 

5
静的クラスインスタンスは、ASP.NETのリクエストまたはサーバーに固有ですか?
ASP.NET Webサイトでは、静的クラスは各Webリクエストに固有ですか、それとも、必要に応じてインスタンス化され、GCが破棄することを決定するたびにGCされますか? 私が尋ねる理由は、以前にいくつかの静的クラスをC#で作成したことがあり、その動作が予想とは異なるためです。静的クラスは各リクエストに固有であると期待していましたが、そうではありません。 それらが各要求に固有ではない場合、それらを許可する方法はありますか? 更新: driisが私に与えた答えはまさに私が必要としたものでした。私はすでにシングルトンクラスを使用していましたが、静的インスタンスを使用していたため、ユーザーが異なっていてもリクエスト間で共有されていましたが、この場合は悪いことでした。を使用HttpContext.Current.Itemsすると、問題が完全に解決されます。将来この質問に遭遇した人のために、パターンを理解しやすいように簡略化して短縮した私の実装を以下に示します。 using System.Collections; using System.Web; public class GloballyAccessibleClass { private GloballyAccessibleClass() { } public static GloballyAccessibleClass Instance { get { IDictionary items = HttpContext.Current.Items; if(!items.Contains("TheInstance")) { items["TheInstance"] = new GloballyAccessibleClass(); } return items["TheInstance"] as GloballyAccessibleClass; } } }
182 c#  asp.net  static 


22
C ++の静的コンストラクタ?プライベート静的オブジェクトを初期化する必要があります
プライベート静的データメンバー(すべての文字a〜zを含むベクトル)を持つクラスが必要です。JavaまたはC#では、クラスのインスタンスを作成する前に実行される「静的コンストラクタ」を作成し、クラスの静的データメンバーを設定するだけです。(変数は読み取り専用で、1度だけ設定する必要があるため)1回だけ実行され、クラスの関数であるため、プライベートメンバーにアクセスできます。ベクトルが初期化されているかどうかを確認し、初期化されていない場合は初期化するコードをコンストラクターに追加できますが、これにより多くの必要なチェックが導入され、問題の最適な解決策とは思えません。 変数は読み取り専用であるため、それらはpublic static constである可能性があるため、クラスの外で一度設定できると思いますが、もう一度、それは一種の醜いハックのように思えます。 インスタンスコンストラクターで初期化したくない場合、クラスにプライベート静的データメンバーを含めることはできますか?

3
通常のES6クラスメソッドから静的メソッドを呼び出す
静的メソッドを呼び出す標準的な方法は何ですか?constructorクラス自体の名前を使用したり、使用したりすることは考えられますが、必要がないので後者は好きではありません。前者が推奨される方法ですか、それとも他に何かありますか? これは(不自然な)例です: class SomeObject { constructor(n){ this.n = n; } static print(n){ console.log(n); } printN(){ this.constructor.print(this.n); } }



4
Javaクラスで宣言された静的フィールドのみを取得する
次のクラスがあります。 public class Test { public static int a = 0; public int b = 1; } リフレクションを使用して静的フィールドのみのリストを取得することは可能ですか?私はすべてのフィールドの配列をで取得できることを知っていますTest.class.getDeclaredFields()。しかし、Fieldインスタンスが静的フィールドを表すかどうかを判断する方法はないようです。
163 java  reflection  static  field 

9
C ++のスタック、静的、およびヒープ
私は検索しましたが、これらの3つの概念をよく理解していません。動的割り当て(ヒープ内)を使用する必要があるのはいつですか?その実際の利点は何ですか?静的およびスタックの問題は何ですか?ヒープに変数を割り当てずにアプリケーション全体を作成できますか? 他の言語には「ガベージコレクター」が組み込まれているので、メモリを気にする必要はありません。ガベージコレクターは何をしますか? このガベージコレクタを使用して実行できなかったメモリを自分で操作するにはどうすればよいでしょうか。 誰かがこの宣言でそれを私に言ったら: int * asafe=new int; 「ポインタへのポインタ」があります。どういう意味ですか?それは次の点で異なります。 asafe=new int; ?

4
メンバー関数の静的変数
メンバー関数の静的変数がC ++でどのように機能するかを誰かが説明できますか? 次のクラスがあるとします。 class A { void foo() { static int i; i++; } } の複数のインスタンスを宣言した場合、1つのインスタンスをA呼び出すと、すべてのインスタンスのfoo()静的変数が増加しiますか?それとも呼ばれたものだけですか? 各インスタンスには独自ののコピーがあると想定していましたがi、私が持っているいくつかのコードをステップ実行すると、そうでないことを示しているようです。
158 c++  static  scope 

19
Javaでのプライベート静的変数の使用は何ですか?
変数がとして宣言されている場合、public static varName;どこからでもとしてアクセスできますClassName.varName。また、静的メンバーはクラスのすべてのインスタンスによって共有され、各インスタンスに再割り当てされないことも認識しています。 変数の宣言は、変数の宣言とはprivate static varName;異なりますprivate varName;か? どちらの場合も、他のクラスから、ClassName.varNameまたはClassInstance.varName他のクラスからアクセスすることはできません。 変数を静的として宣言すると、他の特別なプロパティが得られますか?

7
final staticとstatic finalの違い
次のようなコードを宣言したコードを見つけました private final static String API_RTN_SUCCESS = "0"; private final static String API_RTN_ERROR = "1"; public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config"; public static final String STARTUP_SETTING_KEY = "startup_setting"; それらの違いは何ですか?それらは同じですか?またはそれはのために異なりますprivateかpublic?
151 java  static  final 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.