Presentation is loading. Please wait.

Presentation is loading. Please wait.

オブジェクト指向言語論 第十二回 知能情報学部 新田直也.

Similar presentations


Presentation on theme: "オブジェクト指向言語論 第十二回 知能情報学部 新田直也."— Presentation transcript:

1 オブジェクト指向言語論 第十二回 知能情報学部 新田直也

2 抽象クラス,抽象メソッド 抽象メソッド: 実体を持たないメソッド.abstract 修飾子を付ける. メソッドの実装は派生クラスに任せる.
抽象クラス: 抽象メソッドを1つ以上持つクラス.抽象クラスはインスタンス化できない.(継承しなければ使えない.) abstract class Shape { // 抽象図形クラス abstract void view(Graphics g); // 抽象表示メソッド } → Shape クラスはインスタンス化できない.

3 インタフェースと抽象クラス インタフェース: メンバ変数を持たないクラスの一種.メソッドはすべて抽象メソッドで,抽象クラス同様,インスタンス化できない. 実装: 各クラスは,継承ではなく実装(implements)を用いてインタフェースを利用する.Javaでは複数のクラスを同時に継承すること(多重継承)は許されていないが,複数のインタフェースを同時に実装することは許されている. 抽象クラスとの違い: 抽象クラス → クラスの未完成品,汎化されたクラス インタフェース → 会話するための約束事,付加的な機能

4 インタフェースの使用例 マウスイベントの監視インタフェース
public interface MouseListener extends EventListener { public void mouseClicked(MouseEvent e); public void mousePressed(MouseEvent e); public void mouseReleased(MouseEvent e); public void mouseEntered(MouseEvent e); public void mouseExited(MouseEvent e); } abstract class Shape implements MouseListener { : public void mouseClicked(MouseEvent e) { // マウスクリックされたときの処理

5 UML UML(Unified Modeling Language) ソフトウェアモデルの図的表記法 主に実装前の分析,設計に用いる
’97,OMG(Object Management Group)により標準化 オブジェクト指向開発における世界的潮流 10種類の図(ダイアグラム)からなる 構造図 クラス図,オブジェクト図,パッケージ図 振る舞い図 ユースケース図,シーケンス図,コラボレーション図,ステートチャート図,アクティビティ図 実装図 コンポーネント図,配置図

6 クラス図 クラスやインタフェース間の関係を記述する. インタフェース 関連 実装 クラス 多重度 継承 クラス名 メンバ変数 メソッド

7 JavaAPI(1) 前回の図形描画プログラムで説明しなかったこと. import文 Frameクラス Graphicsクラス
import java.awt.*;             : public class GraphicWindow extends Frame { : public void paint(Graphics g) {

8 JavaAPI(2) パッケージ: 複数のクラスをまとめたもの.
インポート: パッケージの利用.プログラム先頭で以下のように指定する. (Cの#include文のようなもの) import パッケージ名.クラス名; import パッケージ名.*; import java.awt.*;             : public class GraphicWindow extends Frame { : public void paint(Graphics g) {

9 JavaAPI(3) JavaAPI: 標準で配布されるパッケージ.主にOSとの仲立ちを行う.
Java.langパッケージ: System, String, Mathクラスなど,java.langパッケージに含まれる基本クラスは,インポートしなくても使える. System.out.println(“Hello World!!”); AWTパッケージ(java.awt): GUIを提供しているパッケージ.プラットフォームによって動作が異なる. Swingパッケージ(javax.swing): AWTを拡張したパッケージ.動作がプラットフォームに依存せずかつ軽量.(軽量コンポーネント)

10 AWT/Swing(1) 以下の3種類のGUI部品を用いる. トップレベル・コンポーネント(コンテナ) 中間コンポーネント(コンテナ)
他の部品を追加できるが他の部品に含まれないもの. 中間コンポーネント(コンテナ) 他の部品に含まれ,他の部品を追加できるもの. アトミック・コンポーネント 他の部品を追加できないもの. トップレベル コンポーネント 中間コンポーネント アトミックコンポーネント

11 AWT/Swing(2) コンポーネントのクラス階層. アトミックコンポーネント トップレベル コンポーネント

12 AWT/Swing(3) リスナインタフェース
各コンポーネント毎に追加され,そのコンポーネントで発生するイベント(マウスクリックなど)を監視する. 各コンポーネントでイベントが発生したときに,イベントの種類に応じたメソッドが呼ばれる. 実際のイベント処理は,リスナインタフェースを実装した 各具象クラス(ユーザが自由に定義する)に記述する.

13 Swingを用いたゲームプログラミング


Download ppt "オブジェクト指向言語論 第十二回 知能情報学部 新田直也."

Similar presentations


Ads by Google