libro
www.tuyano.com
初心者のためのJava SEプログラミング入門

AWTでウィンドウを作る! (5/6)

作成:2010-01-14 13:10
更新:2011-10-11 15:04

■新しいインスタンスを生成する

では、次にmainメソッドです。ここで、自分自身のTest4クラスを新しく生成しています。では、1行ずつ働きを説明していくことにしましょう。
Test4 myWindow;
これは、「myWindow」という変数を定義する部分です。変数の型は「Test4」。そう、Test4クラス型の変数を定義してるんです。

なんか変な感じがしますが、Javaではこんなふうに定義したクラスの型の変数を作ることができます。そしてその変数に新しいクラスを放り込み、その変数を使ってさまざまな操作をするのです。といっても、「myWindow = Test4」としてもダメです。クラスの場合は「new」というものを使って新しいクラスの部品を作り出し、それを設定してやらないといけません。
myWindow = new Test4 ();
こんな具合ですね。これで変数「myWindow」に、新しく生成したTest4クラスを収めます。クラスは、こんな具合に「new ~」というものを使って新しく生成することができるのです。

このTest4のようなクラス定義というのは、いってみれば「クラスの設計図」みたいなものです。newを実行すると、その設計図を元に、実体のあるクラスが作り出され、変数に収められるのです。クラスを実際に扱うときは、このようにnewで新しいクラスの分身(?)みたいなものを作り出し、それを操作します。設計図を直接操作することはできないのです。

 この「newで作ったクラスの分身」を「インスタンス」といいます。クラスが設計図なら、これは設計図を元に作った実際の家です。つまり、newでインスタンスを作ると、これは実際に操作できるようになるのですね。
myWindow.setVisible(true);
次に、「myWindow」の中のsetVisible()というメソッドを呼びだし、newで作り出したウィンドウを画面に実際に表示しています。え?「なんでmyWindowの中にそんなメソッドがあるんだ? いつ作ったんだ?」ですって?

そう疑問をもつ人も多いでしょうね。でも、よく考えてみてください。変数myWindowの中には、新しく作ったTest4クラスのインスタンスが入っています。つまり変数myWindowを操作するというのは、そこに入っているTest4クラスを操作する、ということなのです。

そして、Test4クラスは、Frameクラスを継承して作られています。そう、わかってきましたね。このFrameクラスに、実はsetVisible()という「ウィンドウを画面に表示するメソッド」が用意されていたのです。

このsetVisibleは、引数にtrueを指定すると画面に表示し、falseを指定すると非表示にする働きをします。この「true」「false」というのは「真偽値(boolean)」と呼ばれる型の値で、二者択一の状態を示すのに用いられます。

これで、mainメソッドでどんなことが行なわれていたかわかってきましたね。、実は、このmainメソッドは、通常はもっと簡単に書きます。
public static void main (String args []) {
    new Test4 ().setVisible(true);
}
こんな具合です。Test4をnewすると同時にそのnewしたもののsetVisible()を呼び出しているわけです。これだけを見るとよくわからないでしょうが、先のように1つ1つ分解して考えれば、どういう働きをしているかわかりますね。

まあ、書くときはこのほうがはるかに簡単ですから、「new 《クラス》.setVisible(true);」という書き方をそのまま覚えてしまいましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

public static void main(String args []) {
   Test4 myWindow;
   myWindow = new Test4();
   myWindow.setVisible(true);
}
※関連コンテンツ

「初心者のためのJava SEプログラミング入門」に戻る