◆ はじめてのA
まずは、前章で入力した jlearn01.java を説明致します。
その前に、jlearn01.javaはソースファイルと云って、これをコンパイルするとクラスファイル(jlearn01.class)が出来ます。
クラスファイルのいろいろなクラスの一つがアプレットです。
jlearn01.javaの内容
import java.applet.Applet;
import java.awt.Graphics;
public class jlearn01 extends Applet{
public void paint(Graphics g) {
g.drawString("人のよい所をどんどん見つけよう! by ちゃいちゃん", 50, 30);
}
}
はじめにクラスの取り込みです。
import java.applet.Applet; import java.awt.Graphics;
上記は、java.applet.Appletとjava.awt.Graphicsというクラスを取り込み(import)ます。
これらは、部品と思って下さい。この部品を元に自分のプログラムを組み立てていきます。
java.applet.Appletは、アプレットの基本部の部品で、java.awt.Graphicsは、ブラウザの表示に関する基本部の部品です。
これらを、import命令でゲットします。
要は、はなから作ると大変なので、いろいろ部品を流用するわけです...。
あと、最後の「;」は、「ここの命令はここまでで終了ですよ」という意味のお約束です。
クラスの名前を決めます。
public class jlearn01 extends Applet{
jlearn01がクラス名になります。
また、この名前は、このクラスファイルの拡張子を除いたものと同じにする決まりになっています。
そして、extends Applet は、Appletクラスを元部品(継承 extends)として新たにクラス(部品)を作るよって云う意味です。
最後の { は、これに対応する } までが一つのクラスであることをあらわします。
paintメソッドの定義です。
public void paint(Graphics g) {
paintメソッドは、アプレットがブラウザにロードされた時に起動されます。
また、引数でGraphicsクラスの機能を使うようにしています。
drawStringtメソッドでの表示です。
g.drawString("人のよい所をどんどん見つけよう! by ちゃいちゃん", 50, 30);
GraphicsクラスのdrawStringメソッドで文字列をブラウザへ表示します。
1番目の引数は、表示する文字列です。
2番目の引数は、表示する文字列の先頭の座標で、アプレットの表示領域の左上が基点になり、そこら右方向へのピクセル値です。
3番目の引数は、表示する文字列の先頭の座標で、アプレットの表示領域の左上が基点になり、そこら下方向へのピクセル値です。
◆ はじめてのC(コンパイル)。
ソースファイルが完成したら、MS-DOSプロンプトからそのソースをコンパイルします。
D:\javalean>javac jlearn01.java D:\javalean>dir /B jlearn01.java jlearn01.class
注意1
javac実行して、「コマンドまたはファイル名が違います」が出たら、パスを通してください。
通常 autoexec.bat の pathコマンドへjavac.exeのあるフォルダーを追加します。
例、path %path%;d:\java\bin
注意2
クラスファイル名は、大文字小文字は区別されますので間違えのないように...。
◆ はじめてのJ(JavaのJikkou実行)
APPLETタグで本クラスを指定したHTMLファイル(jleran01.htm)作成します。
jlearn01.htmの内容
<HTML>
<BODY>
<APPLET CODEBASE="../applet/" CODE="jlearn01.class" WIDTH="400" HEIGHT="50"></APPLET>
</BODY>
</HTML>
CODEBASE属性は、jlearn01.classとjlearn01.htmが同じフォルダーにあれば不要です。
また、CODEBASE属性を指定しない場合、セキュリティ上の理由で参照可能なフォルダーは、
現在の文書が含まれているフォルダーのサブフォルダーのみです。
さぁ! はじめてのAです。クリックしてアプレットを体験してください。
◆ はじめてのO
さて、Javaをやる以上、避けて通れない「物」の考え方があります。
そう、オブジェクト指向です!
ですので、前もって簡単にお話ししますね。
例えば、ある機能のあるプログラムAを作ったとします。
折角、作ったのだから、次回別のプログラムBを作る時、同じ機能があるならプログラムAを再利用したい訳です。
しかし、プログラムAの中身は見たくありません(カプセル化)。機能さえちゃんと動けばいい訳です。
また、プログラムAの機能だけでは、物足りない時、プログラムAの中身を見ないで、機能追加(継承,オーバーライド)をしたい訳です。
そう、Javaは、はじめから上記を意識して作られました。
そして、カプセル化や継承の機能があるJavaのようなプログラムをオブジェクトといいます。
Javaで作られたプログラムはすべてオブジェクトで、オブジェクトの元になるのがクラスです。
そして、クラスをオブジェクトにすることをインスタンスといいます。
たとえて云うと、電源が入っていないロボットがクラスで、入って仕事しているロボットがオブジェクトで、電源を入れることをインスタンス。ってな感じかなぁ...。
また、オブジェクトはメソッドとプロパティからなります。
メソッドは、クラスの持つ機能&動作で、プロパティはクラスの属性で、値を設定したり、参照したりできます。
整理
- オブジェクト指向
部品化したプログラムを組み合わせて、新たなプログラムを作ろうとする指向。 - オブジェクト
メソッドとプロパティからなり、クラスがインスタンス化したもの、Javaプログラムそのもの。 - クラス
オブジェクトの元になるもの。要は、C言語で云うと、構造体そのもの宣言がクラスで、構造体型変数の宣言がオブジェクトみたいな感じ。 - プログラム
Javaに関しては、クラス又はオブジェクトのどちらか。 - カプセル化
オブジェクトの中身を隠し、直接アクセスを禁止して、メソッドを介して、アクセスしてもらうこと。 - 継承
すでに定義済みのオブジェクトのメソッドとプロパティを引き継いだ新しいクラスをつくること。 - オーバーライド
継承は、単に親クラスの機能引継ぎですが、そこに子クラスなりの機能を付加すること。