287 Views
January 26, 22
スライド概要
トピックス:式,変数,式の抽象化とメソッド,メソッド呼び出し(Java Tutor による演習)
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-3. 式の抽象化とメ ソッド トピックス:式,変数,式の抽象化とメソッド, メソッド呼び出し URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1
全体まとめ • 抽象化は :変数を使って,複数の式を1つにまと めることなど 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) • メソッド呼び出し:ジャンプ,変数の生成と消去 が自動で行われる 2
アウトライン 番号 項目 復習 3-1 式,変数 3-2 式の抽象化とメソッド 3-3 メソッド呼び出し 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 3
ソースコード (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
オブジェクトとメソッド hero.moveDown() hero オブジェクト moveDown() メソッド 間を「.」で区切っている • メソッド: オブジェクトに属する操作や処理. • メソッド呼び出しでは,引数を指定することがある.引数 (ひきすう)は,メソッドに渡す値のこと hero.attack("fence", 36, 26) 5
Java プログラムの書き方 プログラムの例 x = 100 a = x + 200 enermy1 = hero.findNearestEnemy() hero.attack(enemy1) • 代入:オブジェクト名 + 「=」 + 式または値またはメソッド呼び出し • メソッドアクセス:オブジェクト名 + 「.」 + メソッド名 +「()」 (引数を付けることも) その他,属性アクセス,関数呼び出し,制御,「*」, 「+」などの演算子,コマンド,定義など 6
Java Tutor の起動 ① ウェブブラウザを起動する ② Java Tutor を使いたいので,次の URL を開く http://www.pythontutor.com/ ③ 「Java」をクリック ⇒ 編集画面が開く 7
Java Tutor でのプログラム実行手順 (1)「Visualize Execution」をク リックして実行画面に切り替える (2)「Last」をクリック. (4)「Edit this code」をク (3) 実行結果を確認する. リックして編集画面に戻る 8
Java Tutor 使用上の注意点① • 実行画面で,次のような赤の表示が出ることがある → 無視してよい 過去の文法ミスに関する確認表示 邪魔なときは「Close」 9
Java Tutor 使用上の注意点② 「please wait ... executing」のとき,10秒ほど待つ. → 混雑しているときは, 「Server Busy・・・」 というメッセージが出ることがある. 混雑している.少し(数秒から数十秒)待つと自 動で表示が変わる(変わらない場合には,操作を もう一度行ってみる) 10
3-1. 式,変数 11
式の実行結果 式の実行結果として,値が得られる プログラム 実行結果 12
変数 • 名前の付いたオブジェクトのことを変数という 場合がある(数学の変数とは違う意味) • 式の中に変数を含めることができる 実行結果 プログラム 13
代入 • 代入:プログラムで,「x = 100」のように書く と,x の値が 100 に変化する プログラム 実行結果 14
演習 資料:16 ~ 19 【トピックス】 • 式と変数 15
① 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
② 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
③ 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
④ 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
まとめ • 代入:プログラムで,「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
3-2. 式の抽象化とメソッド 21
式の抽象化 100 * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 a * 1.1 変数 a を使って,複数 の式を1つにまとめる (抽象化) 22
式の抽象化とメソッド 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) 式「a * 1.1」を含む メソッド foo を定義 メソッド foo を使用 実行結果 23
メソッド • このメソッドの本体は 「return a * 1.1;」 • このメソッドは,式「 a * 1.1」に,名前 foo を付けたものと考えることもできる 24
式の抽象化とメソッド 抽象化前 抽象化後 類似した複数の式 メソッドの定義と使用 実行結果 同じ実行結果になる 25
演習 資料:27 【トピックス】 • 式の抽象化とメソッド 26
Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する(あとで使うので消さな いこと) 実行結果を確認 Visualize Execution をクリック, Last をクリック ※ 編集画面に戻るには Edit this code 27 をクリック
3-3. メソッド呼び出し 28
メソッド呼び出し 呼び出し メソッドmain 呼び出され メソッドfoo 29
ステップ実行 ステップ実行により、プログラム 実行の流れをビジュアルに観察 30
演習 資料:32 ~ 38 【トピックス】 • メソッド呼び出しにおける ジャンプ • メソッド内で使用される変数 が消えるタイミング 31
Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する(あとで使うので消さな いこと) 実行結果を確認 Visualize Execution をクリック, Last をクリック ※ 編集画面に戻るには Edit this code 32 をクリック
②「First」をクリックして,最初に戻る 33
③ 「Step 1 of 17」と表示されているので, 全部で,ステップ数は 17 あることが分かる (ステップ数と,プログラムの行数は違うもの) 34
④ 最初に戻したので ・すべてのオブジェクトは消えている ・赤い矢印は,main メソッドの先頭 のところに戻っている 35
⑤ ステップ実行したいので,「Next」をクリック しながら,矢印の動きを確認. ※「Next」ボタンを何度か押し,それ以上進めな くなったら終了 見どころ main と foo の間で ジャンプするところ 36
⑥ 終わったら,もう一度,「First」をクリックし て,最初に戻る 37
⑦ もう一度,ステップ実行. 今度は、緑の矢印を見ながら、変数 a が生成、消去 されるタイミングを確認 緑の矢印:いま実行が終わった行 メソッド foo の実行中は, 変数 a が現れる 38
全体まとめ • 抽象化は :変数を使って,複数の式を1つにまと めることなど 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) • メソッド呼び出し:ジャンプ,変数の生成と消去 が自動で行われる 39
関連ページ • 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
ソースコード 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