155 Views
January 26, 22
スライド概要
トピックス:クラス定義, クラス階層, 継承, UML のクラス図
Java の基本(スライド資料とプログラム例)(全17回)
https://www.kkaneko.jp/pro/pi/index.html
金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
pi-17. プログラム設計 トピックス:クラス定義,クラス階層,継承, UML のクラス図 URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1
アウトライン 番号 項目 復習 17-1 クラス定義,クラス階層,継承 17-2 UML のクラス図 17-3 UML のクラス図に関する実演・演習 17-4 UML のクラス図からの Java プログラム 作成 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 2
Java などのプログラミング言語の体 験,演習ができるオンラインサービス GDB online http://www.pythontutor.com/ オンラインなので、「秘密にしたいプログラム」を 扱うには十分な注意が必要 3
GDB online で Java を動かす手順 ① ウェブブラウザを起動する ② 次の URL を開く https://www.onlinegdb.com 4
③ 「Language」のところで,「Java」を選ぶ 5
④ ソースコードを入れる ⑤ 実行.実行結果を確認 「Run」をクリック. 6
17-1. クラス定義,クラス階層, 継承 7
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
クラス階層 クラス階層とは,複数のクラスが親子 関係をなすこと クラスA 親 子 クラスB 親 子 クラスC 親 子 クラスD 10
継承 • 継承とは,スーパークラスの属性とメソッドをサブ クラスが受け継ぐこと 11
クラスの類似性 • 類似した2つのクラス Ball 属性 Circle 属性 x x y y color メソッド x, y, color は同じ r の有り無しが 違う color r move move reset reset メソッドの名前も 中身も全く同じとする 12
クラスの親子関係 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
17-2. UML のクラス図 14
UML のクラス図 • プログラム(ソースコード)に関する設計図の書き方の1つ • クラスと相互関係,クラスの属性,クラスの操作を書く クラス クラス クラス名 属性 操作 クラス クラス 15
UML • UML は,Unified Modeling Language のこと • モデリング(構造や,振る舞いや,インタラク ション)の書き方(表現)の方法を統一すること 16
問いかけ • クラスの相互関係には何があるのでしょうか? 親クラス・子クラス 関連: あるクラスが,別の クラスの振る舞いや属性を呼び出す 17
親クラス・子クラス 親クラス 三角の矢印 子クラス 18
関連 「人」についてのデータ処理をするとき, 「住所」の属性や振る舞いを呼び出す場合がある ・「住んでいる」:呼び出す理由 ・「0..1」や「1」:関連の多重度 19
関連の多重度 人 住所 ・1人の「人」には,住所は1つ ・住所は 誰もいなくなっても(引っ越しなど) 記録は残す.同居で複数人いても記録は まとめない 20
クラス クラス名 属性 操作 ・クラスがどういう 役割を担うか ・メソッド名とタイプ を 「move: void」 のように書くことも 21
UMLの特徴 • UML では,書き方(表現)の方法を統一するので, 「人によって書き方の方法が違う」,「使用する プログラミング言語によって書き方の方法が違 う」ということがない • クラス,パッケージ,オブジェクト,アクティビ ティ,ユースケース,ステートチャート,シーケ ンス,コラボレーションの書き方(表現)の書き 方が統一される ※ この授業では,UMLのクラス図の演習を実施 22
17-3. UML のクラス図に関する実 演・演習 23
演習 資料:25 ~ 26 【トピックス】 • UMLのクラス図 24
オンラインのサイト www.draw.io • https://www.draw.io/ • チャート、設計図等を作成できるオンラインのサ イト • さまざまなシェイプ (Shape) を組み合わせて、 チャート、設計図を作成 • 画像(PNG, JPEG など)、PDFファイル形式、 XML形式でのエクスポート機能もある 25
起動までの手順 • Webブラウザで開く https://www.draw.io • 保存先が設定できる.保存する必要がないので 「Decide latet」を選ぶ 26
次のような画面が出ることがある(初めて使用す るときなど) • 新規作成したいので「Create New Diagram」を選ぶ • 種類は「Brank Diagram」を選び、「Create」をクリック 27
メニュー ボタン 編集画面 選択した シェイプの プロパティ シェイプの種類 28
全選択: CTRL + A (同時押し) ※ CTRL は「コントロールキー」 削除: メニューの「Edit」の「Delete」 29
アンドゥ:メニューの「Edit」の「Undo」 30
UML図のためのシェイプは「UML」の下 展開 ボタン スクロール 31
UML図のためのシェイプは「UML」の下 クラス 「3段の四角」が使いやすい 32
親クラス・子クラス 種類を選ぶ マウスで線を引く 33
UML図のためのシェイプは「UML」の下 関連 「Association 1」が使いやすい 「0..1」や「1」は キーボードで入れる 「+」, 「Text」と操作し 「住んでいる」は, キーボードで入れる 34
属性を減らすときは、属 性を選び 右クリックメニューで 属性を増やすときは、属 性を選び 右クリックメニューで 「Duplicate」 「Delete」 テキストの 場所は,マウスで 移動できる 35
次のクラス図を作成しなさい 36
17-4. UML のクラス図からの Java プログラム作成 37
演習 資料:39 ~ 43 【トピックス】 • UMLのクラス図 • プログラム作成 38
次のクラス図の Java プログラムを演習 39
① GDB online のエディタで,次のプログラムを入れる Address クラス定義 40
② 続けて,次のように入れる Person クラス定義 41
③ 続けて,次のように入れる Student クラス定義 42
④ 続けて,次のように入れ,実行し,実行結果を確認する 43
関連ページ • 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