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

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

6
Java静的初期化子はスレッドセーフですか?
静的コードブロックを使用して、レジストリ内のいくつかのコントローラーを初期化しています。したがって、私の質問は、クラスが最初にロードされたときに、この静的コードブロックが絶対に一度だけ呼び出されることを保証できますか?このコードブロックがいつ呼び出されるかは保証できないことを理解しています。Classloaderが最初にそれをロードしたときに、それを推測しています。静的コードブロックのクラスで同期できることはわかっていますが、これは実際に何が起きているのでしょうか。 簡単なコード例は次のようになります。 class FooRegistry { static { //this code must only ever be called once addController(new FooControllerImpl()); } private static void addController(IFooController controller) { // ... } } または私はこれを行うべきですか? class FooRegistry { static { synchronized(FooRegistry.class) { addController(new FooControllerImpl()); } } private static void addController(IFooController controller) { // ... } }

9
静的メソッドがメソッドと見なされるのはなぜですか?
コースの一部のコードの説明を書いていますが、誤って単語methodをfunction交換して使用しています。私は戻って言葉遣いを修正することにしましたが、私の理解の穴にぶつかりました。 私が理解していることから、サブルーチンはfunctionクラスのインスタンスに作用しない場合(その効果は明示的な入力/出力に制限されます)、methodクラスのインスタンスに作用する場合(それはインスタンスへの副作用を排除します)。 このトピックに関しては良い議論があります。受け入れられた回答の定義によれmethodば、インスタンスは暗黙的に渡されることはなく、インスタンスのメンバーにアクセスできないため、static は実際には関数である必要があります。 ただし、これは気になっていますが、methods実際にはstatic は関数ではありませんか? それらの定義により、クラスの特定のインスタンスには作用しません。彼らは関係のためにクラスに「結びついている」だけです。静的サブルーチンを「メソッド」と呼ぶ見栄えの良いサイトをいくつか見たことがあります(Oracle、Fredosaurus、ProgrammingSimplified)ので、これらはすべて用語を見落としているか、何か不足しています(私の推測は後者です)。 。 正しい文言を使用していることを確認したいのですが。 誰かがこれを片付けることができますか?

8
Java:静的クラス?
ユーティリティ関数がいっぱいのクラスがあります。そのインスタンスをインスタンス化しても意味がありませんが、そのメソッドを呼び出したいと思います。これに対処する最良の方法は何ですか?静的クラス?概要?
130 java  class  oop  static  utility 


5
静的クラスメンバーの未解決の外部シンボル
簡単に言えば: 私はほとんど静的なパブリックメンバーで構成されるクラスを持っているので、他のクラス/関数から呼び出される必要がある同様の関数をグループ化できます。 とにかく、クラスパブリックスコープで2つの静的なunsigned char変数を定義しました。これらの値を同じクラスのコンストラクターで変更しようとすると、コンパイル時に「未解決の外部シンボル」エラーが発生します。 class test { public: static unsigned char X; static unsigned char Y; ... test(); }; test::test() { X = 1; Y = 2; } 私はC ++が初めてなので、気楽にやってください。なぜこれができないのですか?
129 c++  class  static  members 


7
最終的な静的メソッドの動作
私は静的メソッドを使用してモディファイヤをいじっており、奇妙な動作に遭遇しました。 ご存知のように、静的メソッドはインスタンスではなくクラスに関連付けられているため、オーバーライドできません。 だから私が以下のスニペットを持っているなら、それはうまくコンパイルします //Snippet 1 - Compiles fine public class A { static void ts() { } } class B extends A { static void ts() { } } しかし、クラスAの静的メソッドにfinal修飾子を含めると、コンパイルが失敗し 、Bのts()はAのts()をオーバーライドできません。オーバーライドされたメソッドはstatic finalです。 静的メソッドをまったくオーバーライドできないときになぜこれが起こるのですか?
123 java  methods  static  final 

2
C#6の「静的」機能を使用するにはどうすればよいですか?
C#6の新機能のいくつか、具体的には 「静的を使用する」を調べています。 using staticは、種類の静的メンバーをスコープに直接インポートできる新しい種類のusing句です。 (ブログ投稿の下部) 私が見つけたいくつかのチュートリアルによると、アイデアは次のとおり です: using System; class Program { static void Main() { Console.WriteLine("Hello world!"); Console.WriteLine("Another message"); } } Console静的クラスを使用する新しいC#6機能を使用して、繰り返しステートメントを省略できます。 using System.Console; // ^ `.Console` added. class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } // ^ `Console.` removed. } しかし、これは私のために働いているようには見えません。次のように言って、usingステートメントでエラーが発生します。 「 ' using …

4
静的メソッド内で非静的内部クラスをインスタンス化する方法は?
次のコードがあります。 public class MyClass { class Inner { int s, e, p; } public static void main(String args[]) { Inner in; } } この部分までのコードは大丈夫ですが、私のようなmainメソッド内「で」インスタンス化することはできませんよin = new Inner()、それが表示されているようnon static field cannot be referenced in static context。 どうすればよいですか?Innerクラスを静的にしたくありません。

8
PHP 5.2+が抽象静的クラスメソッドを許可しないのはなぜですか?
PHP 5.2で厳格な警告を有効にした後、元々厳格な警告なしで作成されたプロジェクトからの一連の厳格な標準警告が表示されました。 厳密な標準:静的関数 Program :: getSelectSQL()は Program.class.inc で抽象であってはなりません 問題の関数は、抽象親クラスProgramに属しており、TVProgramなどの子クラスに実装する必要があるため、抽象staticと宣言されています。 私はこの変更への言及をここで見つけました: 抽象静的クラス関数を削除しました。見落としのため、PHP 5.0.xおよび5.1.xでは、クラスで抽象静的関数を使用できました。PHP 5.2.x以降では、インターフェースのみがそれらを使用できます。 私の質問は次のとおりです。なぜPHPに抽象静的関数を使用すべきではないのか、誰かが明確に説明できますか?
121 php  oop  static  abstract 


4
Pythonのインスタンス変数とクラス変数
私はPythonクラスを持っていますが、実行時に必要なインスタンスは1つだけなので、インスタンスごとではなく、クラスごとに1回だけ属性があれば十分です。複数のインスタンスがある場合(これは発生しません)、すべてのインスタンスは同じ構成にする必要があります。次のオプションのどれがより良いか、より「慣用的な」Pythonであるかと思います。 クラス変数: class MyController(Controller): path = "something/" children = [AController, BController] def action(self, request): pass インスタンス変数: class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass

7
静的インデクサー?
OverаэтотвопросестьответынаStack Overflowнарусском:Перегрузкаиндексаторастатическогокласса C#で静的インデクサーが許可されないのはなぜですか?それらが許可されるべきではなく、さらにそれらが非常に有用である理由は私にはわかりません。 例えば: public static class ConfigurationManager { public object this[string name] { get => ConfigurationManager.getProperty(name); set => ConfigurationManager.editProperty(name, value); } /// <summary> /// This will write the value to the property. Will overwrite if the property is already there /// </summary> /// <param name="name">Name of the property</param> /// …

5
Javaのnull参照の静的フィールド
staticJavaのメンバー(staticフィールドまたはstaticメソッド)は、このクラスのオブジェクトではなく、それぞれのクラスに関連付けられています。次のコードは、null参照の静的フィールドにアクセスしようとします。 public class Main { private static final int value = 10; public Main getNull() { return null; } public static void main(String[] args) { Main main=new Main(); System.out.println("value = "+main.getNull().value); } } main.getNull()戻ってnull、それが動作して表示value = 10。このコードはどのように機能しますか?
119 java  static 

13
Cの関数内の静的変数
何が印刷されますか?6 6または6 7?なぜ? void foo() { static int x = 5; x++; printf("%d", x); } int main() { foo(); foo(); return 0; }
119 c  static 

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