やわらか博物館

壁がトランポリンでできてる

Java入門5 メソッド

メソッドとは

用語

メソッド(method)…複数の文をまとめ、それを1つの処理として名前をつけたもの。部品の最小単位。
メソッドの定義…メソッドを作成すること
・引数(argument)…メソッドの呼び出し元から呼び出し先に渡される、もしくは受け取る値。
         数値・文字列等を指定でき、値や型、渡す引数の数は自由に決められる。
・実引数…渡す値
・仮引数…受け取る変数
・ローカル変数…メソッド内で宣言した変数。その変数が属するメソッド内だけで有効。
・戻り値[返り値]…呼びだされたメソッドから呼び出し元のメソッドへ値を返す(値を戻す)際の値。
オーバーロード[多重定義](overload)…同じ名前のメソッドを定義。シグネチャが重複しない場合のみ可能
シグネチャ(signature)…メソッド名 + 引数の個数・型・並び順
・値渡し(call by value)…値そのものが呼び出される呼び出し
・参照渡し(call by reference)…引数としてアドレスを渡すこと
コマンドライン引数(command line argument)…プログラム起動時の追加情報

メソッドの定義
public static 戻り値の型 メソッド名(引数リスト) {
 メソッドが呼び出されたときに実行される具体的な処理
}
メソッドの呼び出し
メソッド名(引数リスト)
public static void main(String[] args) {
 hello(ミズゴロウ);
 hello(ヌマクロー);
 hello(ラグラージ);
}
public static void hello(String name) {
 System.out.println(name + "、こんにちは");
}
mainメソッド以外からのメソッドの呼び出し

→mainメソッドから動き始める

引数の渡し方

何も渡さない:メソッド名()
値を1つ渡す:メソッド名(値)
値を2つ渡す:メソッド名(値, 値, …)

ローカル変数の独立性

異なるメソッドに属するローカル変数はお互いに独立

値の戻し方
public static 戻り値の型 メソッド名(引数リスト…) {
 メソッドが実行されたときに動く処理
 return 戻り値;
}

・return文でメソッド終了

メソッドを呼び出し、戻り値を受け取る
型 変数名 = メソッド名(引数リスト);
public static int add(int x, int y) {
 int ans = x + y;
 return ans;
}

public static void main(String[] args) {
 int ans = add(100, 10);
 System.out.println("100 + 10 = " + ans);
オーバーロード

仮引数の個数か型が異なる場合、同じ名前のメソッド複数定義できる。
(引数が同じで、戻り値の型だけが異なる場合は不可)

基本データ型の変数をメソッド呼び出しで渡すと

・呼び出し元の変数の内容が、呼び出し先の引数にコピー
呼び出し先で引数の内容を書き換えても、呼び出し元の変数はそのまま

配列をメソッド呼び出しで渡すと

・呼び出し元の配列のアドレスが、呼び出し先の引数にコピー
呼び出し先で配列の実体を書き換えると、呼び出し元にも影響する

コマンドライン引数
java プログラム名 引数リスト(半角スペース区切り)

・プログラム起動時に指定したコマンドライン引数が、JVMによって配列に変換され、mainメソッド起動時に渡される。


感想

・配列と拡張for文がいまいちよくわかっていない、特に後者は変数名:配列変数名の関係が分からない
メソッドは関数のような印象を受けた