pi-3. 式の抽象化とメソッド

285 Views

January 26, 22

スライド概要

トピックス:式,変数,式の抽象化とメソッド,メソッド呼び出し(Java Tutor による演習)

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

pi-3. 式の抽象化とメ ソッド トピックス:式,変数,式の抽象化とメソッド, メソッド呼び出し URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1

2.

全体まとめ • 抽象化は :変数を使って,複数の式を1つにまと めることなど 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) • メソッド呼び出し:ジャンプ,変数の生成と消去 が自動で行われる 2

3.

アウトライン 番号 項目 復習 3-1 式,変数 3-2 式の抽象化とメソッド 3-3 メソッド呼び出し 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 3

4.

ソースコード (source code) • プログラムを,何らかのプログラミング言語 で書いたもの • 「ソフトウエアの設計図」ということも. 人間も読み書き,編集できる public class YourClassNameHere { public static void main(String[] args) { int x = 100; int y = 200; System.out.println(x + y); } } 100 × 200 を計算する Java 言語プログラム 4

5.

オブジェクトとメソッド hero.moveDown() hero オブジェクト moveDown() メソッド 間を「.」で区切っている • メソッド: オブジェクトに属する操作や処理. • メソッド呼び出しでは,引数を指定することがある.引数 (ひきすう)は,メソッドに渡す値のこと hero.attack("fence", 36, 26) 5

6.

Java プログラムの書き方 プログラムの例 x = 100 a = x + 200 enermy1 = hero.findNearestEnemy() hero.attack(enemy1) • 代入:オブジェクト名 + 「=」 + 式または値またはメソッド呼び出し • メソッドアクセス:オブジェクト名 + 「.」 + メソッド名 +「()」 (引数を付けることも) その他,属性アクセス,関数呼び出し,制御,「*」, 「+」などの演算子,コマンド,定義など 6

7.

Java Tutor の起動 ① ウェブブラウザを起動する ② Java Tutor を使いたいので,次の URL を開く http://www.pythontutor.com/ ③ 「Java」をクリック ⇒ 編集画面が開く 7

8.

Java Tutor でのプログラム実行手順 (1)「Visualize Execution」をク リックして実行画面に切り替える (2)「Last」をクリック. (4)「Edit this code」をク (3) 実行結果を確認する. リックして編集画面に戻る 8

9.

Java Tutor 使用上の注意点① • 実行画面で,次のような赤の表示が出ることがある → 無視してよい 過去の文法ミスに関する確認表示 邪魔なときは「Close」 9

10.

Java Tutor 使用上の注意点② 「please wait ... executing」のとき,10秒ほど待つ. → 混雑しているときは, 「Server Busy・・・」 というメッセージが出ることがある. 混雑している.少し(数秒から数十秒)待つと自 動で表示が変わる(変わらない場合には,操作を もう一度行ってみる) 10

11.

3-1. 式,変数 11

12.

式の実行結果 式の実行結果として,値が得られる プログラム 実行結果 12

13.

変数 • 名前の付いたオブジェクトのことを変数という 場合がある(数学の変数とは違う意味) • 式の中に変数を含めることができる 実行結果 プログラム 13

14.

代入 • 代入:プログラムで,「x = 100」のように書く と,x の値が 100 に変化する プログラム 実行結果 14

15.

演習 資料:16 ~ 19 【トピックス】 • 式と変数 15

16.

① Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する public class YourClassNameHere { public static void main(String[] args) { int x = 100; int y = 200; System.out.println(x + y); } } 結果の 「300」を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 16

17.

② Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する public class YourClassNameHere { public static void main(String[] args) { int x = 100; int y = 200; System.out.println(x * y); } } 結果の 「20000」を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 17

18.

③ Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する public class YourClassNameHere { public static void main(String[] args) { int x = 100; int y = 200; System.out.println((x + 10) * y); } } 結果の 「22000」を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 18

19.

④ Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する 底辺が2.5で,高さが5のとき, 三角形の面積は,面積: 6.25 public class YourClassNameHere { public static void main(String[] args) { double teihen = 2.5; double takasa = 5; System.out.println(teihen * takasa / 2); } } 結果の 「6.25」を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 19

20.

まとめ • 代入:プログラムで,「x = 100」のように書く と,x の値が 100 に変化する • 式の実行結果として,値が得られる • 式の中に,変数名を書くことができる public class YourClassNameHere { public static void main(String[] args) { int x = 100; int y = 200; System.out.println(x + y); } } 20

21.

3-2. 式の抽象化とメソッド 21

22.

式の抽象化 100 * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 a * 1.1 変数 a を使って,複数 の式を1つにまとめる (抽象化) 22

23.

式の抽象化とメソッド 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) 式「a * 1.1」を含む メソッド foo を定義 メソッド foo を使用 実行結果 23

24.

メソッド • このメソッドの本体は 「return a * 1.1;」 • このメソッドは,式「 a * 1.1」に,名前 foo を付けたものと考えることもできる 24

25.

式の抽象化とメソッド 抽象化前 抽象化後 類似した複数の式 メソッドの定義と使用 実行結果 同じ実行結果になる 25

26.

演習 資料:27 【トピックス】 • 式の抽象化とメソッド 26

27.

Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する(あとで使うので消さな いこと) 実行結果を確認 Visualize Execution をクリック, Last をクリック ※ 編集画面に戻るには Edit this code 27 をクリック

28.

3-3. メソッド呼び出し 28

29.

メソッド呼び出し 呼び出し メソッドmain 呼び出され メソッドfoo 29

30.

ステップ実行 ステップ実行により、プログラム 実行の流れをビジュアルに観察 30

31.

演習 資料:32 ~ 38 【トピックス】 • メソッド呼び出しにおける ジャンプ • メソッド内で使用される変数 が消えるタイミング 31

32.

Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する(あとで使うので消さな いこと) 実行結果を確認 Visualize Execution をクリック, Last をクリック ※ 編集画面に戻るには Edit this code 32 をクリック

33.

②「First」をクリックして,最初に戻る 33

34.

③ 「Step 1 of 17」と表示されているので, 全部で,ステップ数は 17 あることが分かる (ステップ数と,プログラムの行数は違うもの) 34

35.

④ 最初に戻したので ・すべてのオブジェクトは消えている ・赤い矢印は,main メソッドの先頭 のところに戻っている 35

36.

⑤ ステップ実行したいので,「Next」をクリック しながら,矢印の動きを確認. ※「Next」ボタンを何度か押し,それ以上進めな くなったら終了 見どころ main と foo の間で ジャンプするところ 36

37.

⑥ 終わったら,もう一度,「First」をクリックし て,最初に戻る 37

38.

⑦ もう一度,ステップ実行. 今度は、緑の矢印を見ながら、変数 a が生成、消去 されるタイミングを確認 緑の矢印:いま実行が終わった行 メソッド foo の実行中は, 変数 a が現れる 38

39.

全体まとめ • 抽象化は :変数を使って,複数の式を1つにまと めることなど 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) • メソッド呼び出し:ジャンプ,変数の生成と消去 が自動で行われる 39

40.

関連ページ • 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 40

41.

ソースコード 3-2, 3-3 public class YourClassNameHere { public static double foo(double a) { return a * 1.1; } public static void main(String[] args) { System.out.println(foo(100)); System.out.println(foo(150)); System.out.println(foo(400)); } } 41