性能面での延長あり、setTitle("Title")
または延長中のタイトルのおすすめの設定方法を教えてください。super("Title")
javax.swing.JFrame
3 に答える
(OpenJDK 6-b14 で) grepcodeJFrame
を実行し、少し掘り下げると、コンストラクターが( link )を呼び出すJFrame()
コンストラクターを呼び出すことがわかります。Frame()
Frame("")
super()
そのため、自分でスーパー コンストラクターの呼び出しを指定しない場合は暗黙的に追加されるため、(わずかではありますが) 呼び出した方が効果的super("Title")
です。
コンストラクターを使用している場合は、できるだけ多くの機能をスーパー コンストラクターに委譲するようにしてください。いくつかの作業を行うことからそれを保存できる可能性があります。
たとえば、デフォルトのスーパー コンストラクターは、setter を呼び出すと上書きされる内部オブジェクトを作成する場合があります。正しいデータをすぐに渡すと、より効率的になる機会が与えられます。
しかし、この特定のケースでは、それは大した問題ではないと思います。
クラスを拡張するときは、常に対応する super(.....) を呼び出すことをお勧めします。スーパーコンストラクターが舞台裏でどんな魔法をかけているかは決してわかりません。
あなたは決して必要ありません
super() を呼び出します。
他に何も指定しない場合は、このようになります。次の場合にのみ、呼び出すコンストラクターを指定する必要があります。
- パラメータを持つスーパークラス コンストラクタを呼び出したい
- スーパークラスのコンストラクターではなく、同じクラス内の別のコンストラクターにチェーンしたい