JFrame frame1 = new JFrame();
実行してframe1を宣言するJFrame frame1;と、JFrameのタイプですか、Objectそれとも何か他のものですか? 何JFrameをするのですか、なぜ私はそれを省略できないのですか?
JFrame frame1 = new JFrame();
実行してframe1を宣言するJFrame frame1;と、JFrameのタイプですか、Objectそれとも何か他のものですか? 何JFrameをするのですか、なぜ私はそれを省略できないのですか?
はい、frame1変数の型を定義します。Java は厳密に型指定された言語であり、すべての変数には型が定義されている必要があります。多くの Java クラスは、他のクラスを拡張したり、他のインターフェースを実装したりします。多くの場合、変数が持つことができる型は多数あります。ここでJFrameは「自然な」選択ですが、次のように書くこともできます。
Component frame1 = new JFrame();
JFrame伸びるからComponent。そのため、言語は、同じ行で初期化された場所で自然に「明白な」型が暗示されている場合でも、型が指定されていることを主張します。
JFrame frame1;
参照frame1 のタイプが であることを示しますJFrame。
そのinstantiating/assigningため、タイプをチェックしている間。
あなたのコード
JFrame frame1 = new JFrame();
実際には、オブジェクト指向プログラミングの概念の基本的な考え方であるオブジェクトの宣言と初期化です。
OOP では、オブジェクトの宣言と初期化は 2 段階のプロセスです。
Step 1:Object declarion -----> JFrame frame;
ここでは、実際にはその特定のクラス (jFrame) のタイプの参照変数 (フレーム) がデカールされていますが、何も割り当てられていないため、デフォルトで null 値が割り当てられています。
Step2:Object initialization--> frame=new Jframe();
ここで、 new キーワードによって動的に行われる実際のオブジェクト宣言が行われ、ここでコンストラクター JFrame() が呼び出されます。したがって、そのオブジェクト メモリ参照は「フレーム」参照変数に割り当てられます。
だからデカルしたら
JFrame frame;
初期化するまで何も起こりません
frame=new Jframe();
あなたの例でJFrameは、変数の型と変数内のオブジェクトの型の両方です。を書くとき、 ;を保持するJFrame frame1という名前の変数を作成しています。その変数に入れる実際のオブジェクトは、または任意のサブクラスにすることができます。を記述するときは、変数に入れる型の新しいオブジェクトを作成しています。frame1JFrameJFrameJFramenew JFrame()JFrameframe1