pi-17. プログラム設計

144 Views

January 26, 22

スライド概要

トピックス:クラス定義, クラス階層, 継承, UML のクラス図

Java の基本(スライド資料とプログラム例)(全17回)
https://www.kkaneko.jp/pro/pi/index.html

金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

pi-17. プログラム設計 トピックス:クラス定義,クラス階層,継承, UML のクラス図 URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1

2.

アウトライン 番号 項目 復習 17-1 クラス定義,クラス階層,継承 17-2 UML のクラス図 17-3 UML のクラス図に関する実演・演習 17-4 UML のクラス図からの Java プログラム 作成 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 2

3.

Java などのプログラミング言語の体 験,演習ができるオンラインサービス GDB online http://www.pythontutor.com/ オンラインなので、「秘密にしたいプログラム」を 扱うには十分な注意が必要 3

4.

GDB online で Java を動かす手順 ① ウェブブラウザを起動する ② 次の URL を開く https://www.onlinegdb.com 4

5.

③ 「Language」のところで,「Java」を選ぶ 5

6.

④ ソースコードを入れる ⑤ 実行.実行結果を確認 「Run」をクリック. 6

7.

17-1. クラス定義,クラス階層, 継承 7

8.

Java のデータの種類 ・基本データ データの種類 基本データ型 サイズ 整数 byte 8 bit short 16 bit int 32 bit long 64 bit float 32 bit double 64 bit 文字 char 16 bit true/false boolean 浮動小数 ・基本データの配列 ・クラスに属するオブジェクト: String クラスなど多種 8

9.

クラス定義 クラス定義の中には,属性の定義(属性名とデータ 型),コンストラクタの定義,その他メソッドの定 義を含める. オブジェクトの生成を行うメソッドのことを コンストラクタという 9

10.

クラス階層 クラス階層とは,複数のクラスが親子 関係をなすこと クラスA 親 子 クラスB 親 子 クラスC 親 子 クラスD 10

11.

継承 • 継承とは,スーパークラスの属性とメソッドをサブ クラスが受け継ぐこと 11

12.

クラスの類似性 • 類似した2つのクラス Ball 属性 Circle 属性 x x y y color メソッド x, y, color は同じ r の有り無しが 違う color r move move reset reset メソッドの名前も 中身も全く同じとする 12

13.

クラスの親子関係 class Ball { double x; double y; String color; public Ball(double x, double y, String color) { this.x = x; this.y = y; this.color = color; } public void move(double xx, double yy) { this.x = this.x + xx; this.y = this.y + yy; } public void reset() { this.x = x; this.y = y; } } クラス名 Ball class Circle extends Ball { double r; public Circle(double x, double y, String color, double r) { supUML(x, y, color); this.r = r; } } クラス名 Circle 属性 x, y, color, r メソッド move, reset クラス Circle は,親クラスで あるクラス Ball の属性とメ ソッドを継承する. 属性 x, y, color メソッド move, reset 13

14.

17-2. UML のクラス図 14

15.

UML のクラス図 • プログラム(ソースコード)に関する設計図の書き方の1つ • クラスと相互関係,クラスの属性,クラスの操作を書く クラス クラス クラス名 属性 操作 クラス クラス 15

16.

UML • UML は,Unified Modeling Language のこと • モデリング(構造や,振る舞いや,インタラク ション)の書き方(表現)の方法を統一すること 16

17.

問いかけ • クラスの相互関係には何があるのでしょうか? 親クラス・子クラス 関連: あるクラスが,別の クラスの振る舞いや属性を呼び出す 17

18.

親クラス・子クラス 親クラス 三角の矢印 子クラス 18

19.

関連 「人」についてのデータ処理をするとき, 「住所」の属性や振る舞いを呼び出す場合がある ・「住んでいる」:呼び出す理由 ・「0..1」や「1」:関連の多重度 19

20.

関連の多重度 人 住所 ・1人の「人」には,住所は1つ ・住所は 誰もいなくなっても(引っ越しなど) 記録は残す.同居で複数人いても記録は まとめない 20

21.

クラス クラス名 属性 操作 ・クラスがどういう 役割を担うか ・メソッド名とタイプ を 「move: void」 のように書くことも 21

22.

UMLの特徴 • UML では,書き方(表現)の方法を統一するので, 「人によって書き方の方法が違う」,「使用する プログラミング言語によって書き方の方法が違 う」ということがない • クラス,パッケージ,オブジェクト,アクティビ ティ,ユースケース,ステートチャート,シーケ ンス,コラボレーションの書き方(表現)の書き 方が統一される ※ この授業では,UMLのクラス図の演習を実施 22

23.

17-3. UML のクラス図に関する実 演・演習 23

24.

演習 資料:25 ~ 26 【トピックス】 • UMLのクラス図 24

25.

オンラインのサイト www.draw.io • https://www.draw.io/ • チャート、設計図等を作成できるオンラインのサ イト • さまざまなシェイプ (Shape) を組み合わせて、 チャート、設計図を作成 • 画像(PNG, JPEG など)、PDFファイル形式、 XML形式でのエクスポート機能もある 25

26.

起動までの手順 • Webブラウザで開く https://www.draw.io • 保存先が設定できる.保存する必要がないので 「Decide latet」を選ぶ 26

27.

次のような画面が出ることがある(初めて使用す るときなど) • 新規作成したいので「Create New Diagram」を選ぶ • 種類は「Brank Diagram」を選び、「Create」をクリック 27

28.

メニュー ボタン 編集画面 選択した シェイプの プロパティ シェイプの種類 28

29.

全選択: CTRL + A (同時押し) ※ CTRL は「コントロールキー」 削除: メニューの「Edit」の「Delete」 29

30.

アンドゥ:メニューの「Edit」の「Undo」 30

31.

UML図のためのシェイプは「UML」の下 展開 ボタン スクロール 31

32.

UML図のためのシェイプは「UML」の下 クラス 「3段の四角」が使いやすい 32

33.

親クラス・子クラス 種類を選ぶ マウスで線を引く 33

34.

UML図のためのシェイプは「UML」の下 関連 「Association 1」が使いやすい 「0..1」や「1」は キーボードで入れる 「+」, 「Text」と操作し 「住んでいる」は, キーボードで入れる 34

35.

属性を減らすときは、属 性を選び 右クリックメニューで 属性を増やすときは、属 性を選び 右クリックメニューで 「Duplicate」 「Delete」 テキストの 場所は,マウスで 移動できる 35

36.

次のクラス図を作成しなさい 36

37.

17-4. UML のクラス図からの Java プログラム作成 37

38.

演習 資料:39 ~ 43 【トピックス】 • UMLのクラス図 • プログラム作成 38

39.

次のクラス図の Java プログラムを演習 39

40.

① GDB online のエディタで,次のプログラムを入れる Address クラス定義 40

41.

② 続けて,次のように入れる Person クラス定義 41

42.

③ 続けて,次のように入れる Student クラス定義 42

43.

④ 続けて,次のように入れ,実行し,実行結果を確認する 43

44.

関連ページ • Java プログラミング入門 GDB online を使用 https://www.kkaneko.jp/pro/ji/index.html • Java の基本 Java Tutor, GDB online を使用 https://www.kkaneko.jp/pro/pi/index.html • Java プログラム例 https://www.kkaneko.jp/pro/java/index.html 44