2003/12/14 23:59 JST
方法 1: vending.jar のアイコンをダブルクリック 方法 2:
z:
>
java -jar vending.jar<
Enter>
どんな点が簡単か
お金も商品も無尽蔵であることが前提 商品の価格は 1 種類
おつりは自動的には出てこない
j 自動販売機のソース o ファイルを得る
次のコマンドで
all-in-one jar
ファイルを解凍して、中のソースファイルを取り出して くださいz:
>
jar xvf vending.jar<
Enter>
オプションの説明
x:
解凍v:
詳細表示f:
圧縮ファイル指定Vending.java
がソースファイルですimages
ディレクトリの中には、自動販売機のプログラムで用いる画像ファイル(PNG
a形式)
が格納されていますa PNG: Portable Network Graphics
j 練習問題 : 改造しよう
次のように自動販売機を改造してください
(Vending.java
を書き換えてください) (
先週の改造が済んでいることを前提とします)
おつりを自動的に出す
商品を買った後の残りの投入金額が、最も安い商品の値段に満たなければ、
ボタンが押されなくてもおつりを出すようにします プロジェクタに完成例を映して説明します
j インタフェース
インタフェースは、クラスに似ています クラスと同様、ある型を表します
ただし、定数と中身のないメソッドだけを定義できます
クラスがカテゴリーを表すのに対し、インタフェースは能力を表すと考えれ ばよいでしょう
extends
ではなく、implements
と書いて使います 例: public class A implements B{. . .}
意味 1
:
クラスA
は、インタフェースB (
のメソッド)
を実装します 意味 2:
クラスA
は、インタフェースB
であるかのように扱えます·
クラスA
のインスタンスは、インタフェースB
で定義される能力を持つ ものとして扱えます実装するインタフェースは
‘,’
で区切っていくつも指定できますActionListener インタフェース
よく使われるインタフェースです
j インタフェースの例
public class Vending implements ActionListener
{
:
public Vending()
{
:
// addActionListener() はActionListener 型の引数を受け取ります
buttonCancel.addActionListener(this);
:
}
public void actionPerformed(ActionEvent event)
{
Object source = event.getSource(); // イベントの発生源を取得します
: // ボタンが押されたときの処理を行ないます
}
:
}
ActionListener
を実装するクラスは、必ずactionPerformed()
を定義しなければなり ません今日のメニュー
はじめに 課題レビュー 課題の出題 ミニチェック
練習問題
:
自動販売機を改造する 状態遷移からクラスへスロットマシンで見る便利なクラス
/
インタフェース ファイルからの入力実習
状態遷移からクラスへ
具体的な翻訳の手法は、みなさんの状態遷移図が整理されてから説明します 今週は一般論を説明します
p 状態遷移からクラスの
o 設計へ ∼ GUI 編
外界からのイベントを受け付ける場合
イベントを受けるガジェットを考えます
(
ボタンやテキストフィールドなど)
イベントは基本的に
ActionListener
のactionPerformed()
で受けます ユーザのクリックやテキスト入力タイマの発火
ウィンドウのクローズボタンの処理を行ないます 消滅のイベントに対応します
プログラム内部から使われるオブジェクトの場合 イベント毎にメソッドを用意します
共通
状態をフィールドで区別します
p 状態遷移からクラスの
o 設計へ ∼ CLI 編
外界からのイベントを受け付ける場合
コマンドプロンプトからの入力を受けつけます ファイルリーダのクラス
(
後述)
を用います プロンプトを表示してから入力を読み込みます終了するための入力も用意します
(“quit”
コマンドなど)
·
消滅のイベントに対応しますプログラム内部から使われるオブジェクトの場合 イベント毎にメソッドを用意します
共通
状態をフィールドで区別します
CLI: Command Line Interface
今日のメニュー
はじめに 課題レビュー 課題の出題 ミニチェック
練習問題
:
自動販売機を改造する 状態遷移からクラスへスロットマシンで見る便利なクラス
/
インタフェース ファイルからの入力実習