私は最近、GUI をコーディングするのに邪魔にならないプログラミング言語を探して Java を学んでいます (ウィンドウを作成してインターフェイス要素を追加する簡単な方法を求めるのは多すぎますか?)。 Java で動的プログラミングと静的プログラミングがどのように混ざり合っているかについては、やや興味があります。Java から、メイン クラス/エントリ ポイントを次のように宣言するように求められます。
public static void main(String[] args)...
main 内では、次のようにインスタンスを宣言できます。
JFrame frame = new JFrame();
frame = new JFrame();
Java で完全に有効であるのとは対照的に、それはなぜですか?
特に、最初のものを精神的に「解析」すると、「JFrameのインスタンスであるフレームは、JFrameの新しいインスタンスです」と読みました。私には、それはやや冗長に思えます。「フレームはJFrameの新しいインスタンスです」と私が読んだ後者は、はるかに合理的です。
次に進むと、多くの場合、クラスの上部近くで、頻繁に使用される変数、特に定数または永続的な表示オブジェクトを定義します。そのため、単純なクラスを作成するときは通常、 のようなものを宣言しますpublic JFrame frame
。
JFrame frame = new JFrame()
これらの宣言を問題なく削除できる理由は、適切なインスタンス化の冗長性ですか?
public class Display {
//The line below can be deleted with no apparent difference
public JFrame frame;
public static void main(String[] args) {
/* Why do I need to declare the type of a variable I have
* already declared above? */
JFrame frame = new JFrame();
frame.setSize(800, 600);
frame.setVisible(true);
}
}
その宣言を一番上で削除した場合、フレームがメイン メソッドの子になると想定してもよろしいですか? その場合、それを上に宣言すると、それは Display? の子になります。
全体として、静的クラスによるインスタンス化の説明が欲しいです。ばかげた質問をしていないことを本当に願っていますが、オンラインの「チュートリアル」は通常、コードが何をするかを説明するウォークスルーの形をとっていますが、なぜそのように使用されるのかはわかりません。基本的に、私は他の場所で答えを見つけることができず、皆さんが多くの知識を持っていることを知っています. 思慮深い回答と、可能であれば、各例で宣言された「フレーム」と対話する方法の説明をいただければ幸いです。
public JFrame frame
私がトップに宣言したとしても、frame = new JFrameが無効である理由の説明にも非常に満足しています。
この度はお読みいただき、またご回答いただきまして誠にありがとうございました^_^