pi-3. Javaプログラミングの基
本:メソッドと抽象化によるプ
ログラミング
1
金子邦彦
Java マスター講座:基礎から応用まで)
URL: https://www.kkaneko.jp/pro/pi/index.html
全体まとめ
抽象化 変数を使って,複数の式1つにまと
めることなど
メソッド呼び出し:ジャンプ,変数の生成と消去
が自動で行われる
2
類似した複数の
変数 a を使って,複数
を1つにまとめる
抽象化
a * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
アウトライン
3
番号
項目
復習
3
-1
式,変数
3
-2
式の抽象化とメソッド
3
-3
メソッド呼び出し
各自、資料を読み返したり、課題に取り組んだりも行う
この授業では、Java を用いて基礎を学び、マスターする
ソースコード (source code)
プログラムを,何らかのプログラミング言語
で書いたもの
ソフトウエアの設計図」ということも.
人間も読み書き,編集できる
4
100 + 200 を計算する Java 言語プログラム
public class YourClassNameHere {
public static void main(String[] args) {
int x = 100;
int y = 200;
System.out.println(x + y);
}
}
オブジェクトとメソッド
メソッド: オブジェクトに属する操作や処理.
メソッド呼び出しでは,引数を指定することがある.引数
(ひきすう)は,メソッドに渡す値のこと
hero.attack("fence", 36, 26)
5
hero.moveDown()
hero オブジェクト
moveDown() メソッド
間を「.」で区切っている
Java プログラムの書き方
代入オブジェクト名 =
式または値またはメソッド呼び出し
メソッドアクセスオブジェクト名 .
メソッド名 +「() (引数を付けることも)
6
x = 100
a = x + 200
enermy1 = hero.findNearestEnemy()
hero.attack(enemy1)
プログラムの例
その他,属性アクセス,関数呼び出し,制御,「*,
+」などの演算子,コマンド,定義など
Java Tutor の起動
ウェブブラウザを起動する
Java Tutor を使いたいので,次の URL を開く
https://pythontutor.com/java.html
Java」をクリック 編集画面が開く
7
Java Tutor でのプログラム実行手順
8
(1)Visualize Execution」をク
リックして実行画面に切り替える
(2)Last」をクリック.
(3) 実行結果を確認する.
(4)Edit this code」をク
リックして編集画面に戻る
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
16
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
結果の
300」を確認
Java Tutor のエディタで次のプログラムを入れ,
実行し,結果を確認する
public class YourClassNameHere {
public static void main(String[] args) {
int x = 100;
int y = 200;
System.out.println(x + y);
}
}
Java Tutor のエディタで次のプログラムを入れ,
実行し,結果を確認する
17
結果の
20000」を確認
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
public class YourClassNameHere {
public static void main(String[] args) {
int x = 100;
int y = 200;
System.out.println(x * y);
}
}
Java Tutor のエディタで次のプログラムを入れ,
実行し,結果を確認する
18
結果の
22000」を確認
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
public class YourClassNameHere {
public static void main(String[] args) {
int x = 100;
int y = 200;
System.out.println((x + 10) * y);
}
}
Java Tutor のエディタで次のプログラムを入れ,
実行し,結果を確認する
19
結果の
6.25」を確認
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
底辺が2.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);
}
}
まとめ
代入:プログラムで,「x = 100」のように書く
と,x の値が 100 に変化する
の実行結果として,値が得られる
の中に,変数名を書くことができる
20
public class YourClassNameHere {
public static void main(String[] args) {
int x = 100;
int y = 200;
System.out.println(x + y);
}
}
3-2. 式の抽象化とメソッド
21
式の抽象化
22
類似した複数の
変数 a を使って,複数
を1つにまとめる
抽象化
a * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
式の抽象化とメソッド
23
類似した複数の
変数 a を使って,複数
を1つにまとめる
抽象化
a * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
メソッド foo を使用
a * 1.1」を含む
メソッド foo 定義
実行結果
メソッド
24
このメソッド本体
return a * 1.1;
このメソッドは,式「 a * 1.1」に,名前 foo
を付けたものと考えることもできる
式の抽象化とメソッド
25
類似した複数の
実行結果
メソッドの定義と使用
同じ実行結果になる
抽象化前
抽象化後
演習
資料:27
【トピックス】
式の抽象化とメソッド
26
Java Tutor のエディタで次のプログラムを入れ
実行し,結果を確認する(あとで使うので消さな
いこと
27
実行結果を確認
Visualize Execution をクリック,
Last をクリック
編集画面に戻るには Edit this code
をクリック
3-3. メソッド呼び出し
28
メソッド呼び出し
29
メソッドfoo
呼び出され
呼び出し
メソッドmain
ステップ実行
ステップ実行により、プログラム
実行の流れをビジュアルに観察
30
演習
資料:32 38
トピックス
メソッド呼び出しにおける
ジャンプ
メソッド内で使用される変数
消えるタイミング
31
Java Tutor のエディタで次のプログラムを入れ
実行し,結果を確認する(あとで使うので消さな
いこと
32
実行結果を確認
Visualize Execution をクリック,
Last をクリック
編集画面に戻るには Edit this code
をクリック
②「First」をクリックして,最初に戻る
33
Step 1 of 17」と表示されているので,
全部で,ステップ数は 17 あることが分かる
(ステップ数と,プログラムの行数は違うもの)
34
最初に戻したので
・すべてのオブジェクトは消えている
赤い矢印は,main メソッドの先頭
のところに戻っている
35
ステップ実行したいので,「Next」をクリック
しながら,矢印の動きを確認
Next」ボタンを何度か押し,それ以上進めな
くなったら終了
36
見どころ
main foo の間で
ジャンプするところ
終わったら,もう一度,「First」をクリックし
て,最初に戻る
37
もう一度,ステップ実行
今度は、緑の矢印を見ながら、変数 a 生成消去
されるタイミングを確認
緑の矢印いま実行が終わった行
38
メソッド foo の実行中は,
変数 a が現れる
全体まとめ
抽象化 変数を使って,複数の式1つにまと
めることなど
メソッド呼び出し:ジャンプ,変数の生成と消去
が自動で行われる
39
類似した複数の
変数 a を使って,複数
を1つにまとめる
抽象化
a * 1.1
100 * 1.1
150 * 1.1
400 * 1.1
関連ページ
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