問題タブ [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 - final static メソッドを宣言するのは悪い考えですか?
私はこのコードでそれを理解しています:
.. の静的メソッドは、ポリモーフィズムの意味でオーバーライドするのではなく、 でBar
宣言された静的メソッドを「非表示」にします。Foo
...出力します:
イン フー
イン バー
method()
asfinal
を再定義すると、それを非表示にFoo
する機能が無効にBar
なり、再実行main()
すると次のように出力されます。
イン・フー・
イン・フー
(編集:メソッドを としてマークするとコンパイルが失敗し、final
削除したときにのみ再度実行されますBar.method()
)
final
サブクラスが意図的または不注意にメソッドを再定義するのを止める場合、静的メソッドを として宣言することは悪い習慣と見なされますか?
(これは、使用の動作が何であるかの良い説明final
です..)
java - プライベートメソッドを最終的にしますか?
プライベートメソッドを最終的にすることは有益ですか?それでパフォーマンスが向上しますか?
プライベートメソッドはオーバーライドできないため、「プライベートファイナル」はあまり意味がないと思います。したがって、メソッドルックアップはfinalを使用する場合と同様に効率的である必要があります。
そして、プライベートヘルパーメソッドを静的にする方が良いでしょうか(可能な場合)?
何を使用するのが最適ですか?
php - PHPでクラスのctorを「final」と宣言するのは悪い習慣ですか?
他の多くのクラスによって拡張された親クラスがあり、親クラスのコンストラクターが常に実行されるようにしたい場合、コンストラクターを宣言するのは悪い考えfinal
ですか?
私はこのようなことを考えていました:
そうすれば、子クラスは一種のコンストラクターを持つことができ、親クラスのコンストラクターは常に実行されます。これは悪い習慣ですか?
java - 最終変数のアクセシビリティ
静的変数で最終変数にアクセスできないのはなぜですか。コンパイル時に、それらは単にそれらの値で直接置換されるので、静的メソッドでも使用できるようにする必要があります
なぜこの制限なのですか?
java - JavaでStringクラスがfinalと宣言されるのはなぜですか?
Java でクラスが final として宣言されていることを知ったときから、java.lang.String
それはなぜなのか疑問に思っていました。当時は答えが見つかりませんでしたが、この投稿: How to create a replica of String class in Java? 私の質問を思い出しました。
確かに、String は私が今まで必要としていたすべての機能を提供します。また、String クラスの拡張を必要とする操作については考えたこともありませんでしたが、それでも、誰かが何を必要としているかはわかりません!
では、デザイナーが最終的なものにすることを決定したときの意図を知っている人はいますか?
c# - c# seal と Java の final キーワードの間に機能上の違いはありますか?
重複の可能性:
C# での Java の final に相当するものは何ですか?
Java では、 final は単なるクラス以上のものに適用されます。
それで、私は疑問に思います: 2 つのキーワードの間に機能上の違いはありますか?
ありがとうございます。比較的初歩的な質問で申し訳ありません。
簡単な Google 検索では、私のニーズは満たされませんでした。
java - Javaの最終変数と同期ブロック
Javaの最終変数とは何ですか? たとえばfinal int temp;
、関数で記述した場合、final キーワードの意味は何ですか?
また、いつ final 変数を (クラス変数と関数変数の両方として) 使用したいですか?
同期ブロック内の変数を final と宣言する必要があるのはなぜですか?
java - Java の「final」キーワードは実際にセキュリティを向上させますか?
Java で 'final' キーワードを使用する理由はたくさんありますが、私が何度も耳にする理由の 1 つは、コードがより安全になるということです。これは、この些細なケースでは理にかなっているように見えますが:
final キーワードを使用すると、悪意のあるコードが変数 passwordHash を変更できないことが予想されます。ただし、リフレクションを使用すると、passwordHash フィールドの final 修飾子を変更できます。
それでは、「最終」は本当のセキュリティを提供しますか、それとも単なるプラセボですか?
編集: いくつかの非常に興味深い議論があり、複数の回答を受け入れることができればいいのにと思います. ご意見をお寄せいただきありがとうございます。
java - メソッドのローカル変数を final と宣言できないのはなぜですか?
メソッドに対してローカルな変数を final として宣言できない理由を知りたいです。具体的な理由はありますか?
Javaにはローカル定数がないということですか?