メソッド

メソッドとは

プログラムが複雑になってくると・・・

・プログラムが長くなってきて、どこでどんな処理をしているのか

わかりずらい

・同じような処理が何度も出てきて効率が悪い

・同じ処理が何箇所にもあって、そのどれかを1つ直す場合

他も全部直す必要があり、見落としやすい

↑これらを解決するために・・・

プログラムを細かく分けて「部品化」する

この部品のことをメソッドという

 

メソッドの考え方

ただ単に細かく分ければいい・・・というものではない

「処理の流れから切り離して、必要に応じて呼び出す」

という考え方をする

 

メソッドの定義

→メソッドを作ること

書き方

public static 戻り値の型 メソッド名(引数リスト){

    呼び出した時に実行する処理

}

 

メソッドを書く位置

メソッドの中にメソッドは書けないので、mainメソッドの

上か下に書く

 

メソッドの呼び出し

→必要に応じて呼び出す

書き方

メソッド名(引数リスト);

mainメソッドから順番に呼び出していく

 

メソッドは機能ごとの処理

各機能をひとつのメソッドに入れてしまうのはあまり良くない

 

メソッド間のデータの受け渡し

注意点

箱の名前が同じだったら自動的にデータが受け渡されるわけではない(スコープ外)

データを受け渡す仕組みが必要になる

 

引数と戻り値

引数(ひきすう)(パラメータ)

呼び出し元からメソッドに渡すデータのこと

何個でも、0でもok

戻り値(返り値)

メソッドから呼び出し元に渡すデータのこと

個数は0か1

2以上のデータを戻すことはできない(配列はok)

 

引数を受け取る

メソッド側はどんなデータが渡されるかわからないのでそれを受け取る箱が必要

そのため、引数は変数で受け取る

( )(丸カッコ)の中で変数を宣言すると引数として受け取ることができる

(※セミコロンはなしなので注意!)

メソッド側の引数のことを仮引数という

(ex)

public static void convertToAD (int heisei){

    int ad = heisei + 1988;

}

 

メソッドに引数を渡す

渡したいデータをそのまま丸カッコの中に書く

(ex)

convertToAD(5)

convertToAD(x+1)

呼び出し元側の引数を実引数という

実引数は仮引数のデータ型に合わせて指定する必要がある

 

メソッドから戻り値を返す

書き方

public static 戻り値の型 メソッド名(引数リスト){

   呼び出された時に実行する処理

  return 戻り値;

}

戻り値を戻すためにはreturn文を使う

戻り値は変数・リテラル・式も指定できる

戻り値がない(0個)の場合は戻り値の型としてvoidを指定する

メソッドの左を戻り値の型にしなければならない

 

メソッドから戻り値を受け取る

書き方

型 変数名=メソッド名(引数リスト);

 

戻り値をそのまま使う

戻り値は変数に入れず、直接使うこともできる

(ex)

return heisei+1;

 

引数を複数渡す

受け取る方も渡す方もカンマ(,)で区切って指定する

引数の順序が重要(仮引数と同じ順番にする)

 

オーバーロード

引数の型、数、並び順が違えば同じメソッド名を複数定義できる

呼び出し方は同じ

実引数と同じメソッドをJVMが自動判断

 

引数に配列を用いる

仮引数に使えるものは変数だけでなく配列も可能

1つの配列は1個と数える

 

値渡しと参照渡し

値渡し

値を仮引数に代入

参照渡し

アドレスを仮引数に代入

 

mainメソッドの仮引数

args = argments(引数)

 

コマンドライン引数

実行時に渡すデータ

書き方

java プログラム名 引数リスト