問題タブ [final]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java のメソッド パラメータでキーワード「final」を使用する必要があるのはなぜですか?
final
メソッドのパラメーターで使用する場合、キーワードが本当に便利な 場所がわかりません。
匿名クラスの使用、可読性、意図の宣言を除外すると、私にはほとんど価値がないように思えます。
一部のデータが一定であることを強制することは、見かけほど強力ではありません。
パラメータがプリミティブである場合、パラメータは値としてメソッドに渡され、それを変更してもスコープ外では影響がないため、影響はありません。
参照によってパラメーターを渡す場合、参照自体はローカル変数であり、参照がメソッド内から変更された場合、メソッドのスコープ外からは何の影響もありません。
以下の簡単なテスト例を考えてみましょう。メソッドが与えられた参照の値を変更しても、このテストは成功しますが、効果はありません。
java - なぜ final キーワードを避けるのですか?
Javaでは、非抽象クラスの拡張を許可するケースはありますか?
クラス階層がある場合、常に悪いコードを示しているようです。同意しますか、なぜ/しないのですか?
php - 「最終」はいつ使うべきですか?
日常のプログラミング (Web またはその他) でクラスまたはメソッド final を宣言する必要がある特定の理由はありますか? 使用する必要がある実際の例を提供してください。
ところで、私は「あいまいな」キーワードを選んでそれを習得しようとしているので、私は尋ねています.
java - Java では、親クラスで最終メンバーを (初期化せずに) 宣言して、その値をサブクラスに設定できないのはなぜですか? どうすれば回避できますか?
Java プログラムには、親 (抽象) から継承する複数のサブクラスがあります。すべての子には、一度だけ設定されるメンバーが必要であることを表現したかった (これは、コンストラクターから実行する予定でした)。私の計画はs.thをコーディングすることでした。このような:
しかし、これは Java の神々を喜ばせていないようです。親クラスではbirthmark
「初期化されていない可能性があります」というメッセージが表示され、子クラスでは「最終フィールドbirthmark
にアクセスできません」というメッセージが表示されます。
では、これに対するJavaの方法は何ですか? 私は何が欠けていますか?
java - final フィールドを遅延してインスタンス化する
最終フィールドを遅延してインスタンス化することは可能ですか?
次のコードはコンパイルされません。
代替手段はありますか?
java - Java でコンストラクターの前に最終変数を初期化する
Javaコンストラクタで最終変数を使用する解決策はありますか? 問題は、最終フィールドを次のように初期化した場合です。
その後、コンストラクターで使用できません。Java は最初にコンストラクターを実行し、次にフィールドを実行します。コンストラクターの最終フィールドにアクセスできるようにするソリューションはありますか?
java - Pythonの変数に相当する`final`キーワード?
final
PythonでJavaに相当するドキュメントを見つけることができませんでしたが、そのようなものはありますか?
オブジェクトのスナップショットを作成しています(何かが失敗した場合の復元に使用されます)。このバックアップ変数が割り当てられたら、変更しないでください。Pythonのfinalのような機能がこれに適しています。
c# - C#が同じ行でconstとstaticを許可しないのはなぜですか?
C#が同じ行でconstとstaticを許可しないのはなぜですか?Javaでは、定数として機能するために、フィールドを「static」および「final」として宣言する必要があります。C#でconstをfinalとして宣言できないのはなぜですか?
私はさらに、Javaでは、これが明示的に宣言されているかどうかに関係なく、すべてのインターフェースがパブリックで抽象的であることを区別します。constは本質的に事実上静的ではありませんか?なぜC#はこれを嫌うのですか?