0

このコードでは、「メイン」メソッドの前に次の行があります。

JTextArea displayArea;
JTextField typingArea;

これらの行は何をし、いつ実行されるのだろうか。私の知る限り、「メイン」メソッドは「エントリポイント」です。そのため、コードは「main」メソッドの最初から実行されます。他のすべてのメソッドは、「メイン」メソッドから呼び出された場合に実行されます。その場合、前述の 2 行は実行されません。また、処刑されるとしても、具体的に何をするのでしょうか?これらの "ClassName objectName" のペアは何をしますか?

4

6 に答える 6

2

それらは「宣言」と呼ばれます。2 つの変数の存在を宣言し、その名前を示しています。宣言の場所によって、そのスコープが決まります。つまり、プログラムのどの部分がそれらの特定の変数について知ることができ、それらを参照できるかが決まります。

これは Java変数に関するチュートリアルです

于 2010-01-28T16:13:41.987 に答える
0

ファイル全体が含まれていません。

これらはフィールドの宣言です。これは、クラスがインスタンス化される (つまり、クラスからオブジェクトが作成される) ときに、各オブジェクトがテキスト領域とテキスト フィールドへの参照を持つことを示します。ただし、これらのオブジェクトを作成する必要があります。

メイン メソッドが静的であることに注意してください。これは、含まれているクラスをインスタンス化せずに実行できることを意味します。ただし、ほとんどの Java メソッドはオブジェクトを操作します。メインがクラス C にあるとします。メインのどこかに、C のインスタンスが作成されたことを意味する「新しい C」が表示される可能性があります。次に、その新しいオブジェクトに対して他の操作が呼び出され (ファイル内の他の非静的メソッドを探します)、これらの操作はこれら 2 つのフィールドを操作します。

于 2010-01-28T16:14:12.823 に答える
0

タイプを指定します。

JTextArea displayArea; // this creates textarea type and thus textbox
JTextField typingArea; // thus creates textfield type var and thus text field
于 2010-01-28T16:15:18.810 に答える
0

これらは、KeyEventDemoクラスのメンバー (参照) 変数です。

キーワードKeyEventDemoを使用して がインスタンス化されると、各インスタンスは、それぞれを参照するこれらの変数を持ちます。これらは初期化され、メソッド内のいくつかのインスタンスへの参照として割り当てられます。newJTextAreaJTextFieldnulladdComponentsToPane

于 2010-01-28T16:15:45.503 に答える
0

これらの宣言は、オブジェクトが Java 仮想マシンによってインスタンス化されるときに評価されます。それはmainメソッドがこの場合の直前です。

于 2010-01-28T16:16:09.640 に答える
0

それらはクラスメンバーです。

基本的に、Java クラスにはメソッドとメンバーがあります。メンバーは、そのクラスのインスタンスであるオブジェクトの状態を保持する変数です。

メイン メソッドは分離されています。これは静的メソッドであるため、クラスのインスタンスがなくても実行できます。したがって、main() で実行されるロジックと、クラスのインスタンスで実行されるロジックがあります。それらはかなり分離しています。

必要に応じて、main() 関数でクラスのインスタンスを作成できます。実行する必要があるメンバー関数の初期化がある場合は、それを「実行」できます。

ただし、すべてのクラス メンバーがコンストラクターで初期化されるわけではなく、それらは null のままになります (その場合、その時点で何も「実行」されません)。あなたの例では、初期化がないため、コンストラクター ロジックが開始されると、これらのメンバーは null になります。

于 2010-01-28T16:17:50.147 に答える