pi-15. プログラム設計

105 Views

January 26, 22

スライド概要

Java の基本
URL: https://www.kkaneko.jp/cc/pi/index.html

profile-image

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

シェア

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

各ページのテキスト
1.

pi-15. プログラム設計 URL: https://www.kkaneko.jp/cc/pi/index.html 金子邦彦 1

2.

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

3.

j15-1. クラス定義, クラス階層,継承 Java を基礎から学びた い人へ(入門者向け) 金子邦彦 3

4.

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 クラスなど多種 4

5.

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

6.

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

7.

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

8.

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

9.

クラスの親子関係 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 9

10.

J15-2. UML のクラ ス図 Java を基礎から学びた い人へ(入門者向け) 金子邦彦 10

11.

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

12.

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

13.

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

14.

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

15.

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

16.

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

17.

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

18.

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

19.

j15-3. UML のクラス図 に関する実演・実習 Java を基礎から学びた い人へ(入門者向け) 金子邦彦 19

20.

実演・実習 • 資料:22~33 • 次のことを理解しマスターする • UMLのクラス図の書き方 20

21.

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

22.

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

23.

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

24.

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

25.

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

26.

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

27.

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

28.

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

29.

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

30.

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

31.

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

32.

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

33.

j15-4. UML のクラス図か らの Java プログラム作成 Java を基礎から学びた い人へ(入門者向け) 金子邦彦 33

34.

実習の指示 • 資料:35~44 • 次のことを理解しマスターする • UMLのクラス図の読み取り 34

35.

次のクラス図の Java プログラムを実演・実習 35

36.

オンライン開発環境 GDBonline • プログラミングを行える Web サービス https://www.onlinegdb.com • ウェブブラウザを使う • たくさんの言語を扱うことができる Python3, Java, C/C++, C#, JavaScript, R, アセンブリ言語,SQL など 36

37.

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

38.

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

39.

実行ボタン エディタ画面 プログラムを 書き換えること ができる 39

40.

④ エディタで,今のプログラムをすべて消したのち,次のように入れる Address クラス定義 40

41.

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

42.

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

43.

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