第十二章 クラスメソッド
メンバの書き順
メンバを記述する順番にプログラム的な意味はありません。
目次
1.メソッドを記述する順番
メソッドを記述する順番にプログラム的な意味はありません。
必ずしも mainメソッドが一番下でなくても構いません。
他のメソッドもメンバ変数も同様です。
ただ、分かりにくいのでメンバ変数は一番上にまとめて書いた方がいいでしょう。
mainメソッドの位置は好みが分かれる。
けっこうルーズだ。
↓の Sample07_41は、
Sample07_32.java の mainメソッドと、method_01を上下入れ替えてみました。
それでも問題なく動作します。
//Sample07_41.java
class Sample07_41 {
/*mainメソッド*/
public static void main(String[] args){
method_01();//呼び出し
}
/*メソッドの定義*/
static void method_01(){
System.out.println("ぱんぱかぱーん!");
}
}
コマンドライン
>javac Sample07_41.java
>java Sample07_41
ぱんぱかぱーん!
あれ?
プログラムは基本的に
上から順番に実行されるのでは?
method_01メソッドの定義を読む前に
method_01メソッドを実行しちゃって
大丈夫なのは不思議ね。
プログラムが実行されると、
最初にclass内のメンバがすべてチェックされます。
mainメソッドを探さなくてはいけませんからね。
すべてのメンバを確認した後で、mainメソッドが実行されます。
mainメソッドが実行されるときには
method_01メソッドの存在が
分かっている訳だ。
なるほど。
だからメンバの順番は
どうでもいいわけなんスね。
重要
- メンバの順番はプログラムの実行に影響しません。
- メソッドの中は上から順番に実行されます。追い越し禁止です。
2.メソッドの中は追い越し禁止
改めて確認させてくれ。
以前にも触れた通り、メソッドの中は上から順番に実行されます。
mainメソッドから他のメソッドを呼び出して、実行される順番を確認してみましょう。
//Sample07_42.java
class Sample07_42 {
/*method_01の定義*/
static void method_01(){
System.out.println("活動限界まであと...");
for(int i=10; i>=0; i--){
System.out.println(i);
}
}
/*method_02の定義*/
static void method_02(){
System.out.println("内部電源に切り替わりました。");
}
/*mainメソッド*/
public static void main(String[] args){
System.out.println("アンビリカルケーブル切断!!");//(1)
method_02();//(2)呼び出し
method_01();//(3)呼び出し
System.out.println("活動停止しました。");//(4)
}
}
コマンドライン
>javac Sample07_42.java
>java Sample07_42
アンビリカルケーブル切断!!
内部電源に切り替わりました。
活動限界まであと...
10
9
8
7
6
5
4
3
2
1
0
活動停止しました。
mainメソッドから呼び出した順番通りに実行されました。
method_01で少し時間をかけていますが、処理の完了を待ってから次に進んでいます。
ちなみに平行して処理を実行する方法もあります。
javaはマルチタスクに対応していますからね。
シューティングゲームを作るのには欠かせませんね。
key_word : Thread Runtime
シューティングゲームという
言葉が出てきた!!
まあ、アニメーションを動かしながら
キーボードやマウスの待ち受けが必要だ。
でも大丈夫。
何とかそこまで解説して行こう。
メソッドに慣れてきましたか?
お疲れ様でした。