メソッド
作業のひとかたまりのような?
public static 戻り値の型 メソッド名(引数リスト){
処理内容(メソッドブロックという);
}
呪文だと思ってそういうものだととりあえず思いましょう。
--->Main174.java
package part1;
public class Main174 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
System.out.println("call method");
hello();//メソッドさん
System.out.println("end calling method");
}
public static void hello() {
System.out.println("湊さんこんにちは");
}
}
--->実行結果
call method
湊さんこんにちは
end calling method
見てわかるが、メソッド部分に一度飛んで、終了後にその次の行が実行されているね
f6でデバッグしてステップ実行しようしようとしても、呼び出された中にいかない
そういうときにf5を使うらしい
普通はmainメソッドを一番上に記述しますよ
p176はわざと「どういう順番でもOK」ということを示すためにぐちゃぐちゃな順番になっている。
--->Main176.java
package part1;
public class Main176 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
methodA();
System.out.println("メソッドAを呼び出し終えた");
}
public static void methodA() {
System.out.println("here is in methodA");
methodB();
}
public static void methodB() {
System.out.println("here is in methodB");
}
}
mainがメソッドAをよびだし、メソッドAがメソッドBを呼び出す形。
引数(argument)(アーギュメント)
メソッドを呼び出すときに、呼び出し元が引数を渡すことができる
--->Main178.java
package part1;
public class Main178 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
System.out.println("メソッドを呼び出すよ");
hello("湊");
hello("あさか");
hello("すがわら");
System.out.println("メソッドを呼び出し終了");
}
public static void hello(String name) {
System.out.println(name + "さんこんちは");
}
}
--->実行結果
メソッドを呼び出すよ
湊さんこんちは
あさかさんこんちは
すがわらさんこんちは
メソッドを呼び出し終了
渡すのは自由だけど、
受け取るメソッド側で、受け取るデータ型を必ず書いておかないといけない。
今回送られてきたのがストリング型の文字列なので、メソッドhelloは(String 型で受け取り name にセット)という記述になる
引数はいくつ渡してもいいらしいよ。
--->Main180.java
package part1;
public class Main180 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
tashizan(100,20);
tashizan(200,50);
}
//複数の値を受け取るメソッド
public static void tashizan(int x, int y) {
int ans = x+y;
System.out.println(x+"+"+y+"="+ans);
}
}
複数渡した形が↑これですね。