情報処理2z(Java version) 課題2:静止画 |
応用課題
先週作った "kadai1.java" のソースプログラムを参考に簡単に Java プログラムの構造を説明します。
import java.awt.*; public class kadai1 extends java.applet.Applet { public void paint(Graphics g){ g.drawLine(50, 50, 150, 150); /* 線を描く命令 */ } } |
Java のソースプログラムには1つ以上のクラス宣言が必要です。 このプログラムの場合は "kadai1" というクラスが唯一宣言されています。
またクラスは0個以上のメソッドと変数から成り立っています。 この "kadai1" クラスは "paint" メソッドを持っています。
HTML やアプレットビューアより呼び出されたクラスは、 このメソッドをある順番で処理することにより HTML などからのリクエストに応えることになります。 その順番については次回以降で説明します。
まず今回はこのクラスとメソッドの関係を十分に理解しておいて下さい。
クラス内に自分でメソッドを定義することができます。 今回の ballprint() をどのように宣言すれば良いのか一例を示します。
import java.awt.*; public class kadai203 extends java.applet.Applet { public void paint(Graphics g){ ballprint(g, 50, 50); ballprint(g, 150, 20); ballprint(g, 80, 170); } private void ballprint(Graphics g, int x, int y){ g.drawLine( x , y , x+10 , y+10 ); /* 線を描く命令 */ g.drawLine( x , y , x-10 , y+10 ); g.drawLine( x+10 , y+10 , x-10 , y+10 ); } } |
とこのようになります。メソッドの最初に修飾子をつけますが、 自分で作るメソッドには当面 private をつけておけば問題ないです *1。この修飾子は省略も可能です。
各メソッドごとに定義する変数をローカル変数、 クラスで共通の変数をフィールド変数といいます。
paint(Graphics g) と宣言したとすると、 その paint メソッド内で使用可能になる描画命令の一部を載せます。
g.setColor(Color.white); g.setColor(Color.red); g.setColor(Color.green); g.setColor(Color.blue);
Color c; /* Color 型変数の宣言 */ c = new Color(255, 255, 255); /* 引数の初めから Red, Green, Blue の順 */ g.setColor(c);
新しいプログラムに移る時にそれを参照する HTML ファイルを書き換えるのを 忘れないで下さい。
<applet code="kadai1.class" width=200 height=200> </applet> |
この code="****.class" の部分です。
|