※初めてこのサイトに来た方は
↓Java入門メモについて(必読)を読んでください。
http://ameblo.jp/javareference/entry-10815079120.html
| 1.メソッドの記入と使い方について |
mainメソッドみたいな感じで
void a() {
}
と記入すると
{ }の中の仕事を自動で処理してくれます。
これをメソッドといいます。
でも他のメソッドやmainメソッドの中にvoid a( ){ }とは書けません。
class内でメソッドの外ならどこに書いてもOKです。
if(制御構文の一種)とは別物なので混同しないようにしてください。
voidは戻り値の型です。
戻り値というものについては下で詳しく説明していますが
ここでは戻り値というものについては書かずに進めます。
void a( ){ }を記入しただけではメソッドは動きません。
void a( ){ }の使い方は↓の通りです。
void a() {
}
と記入すると
{ }の中の仕事を自動で処理してくれます。
これをメソッドといいます。
でも他のメソッドやmainメソッドの中にvoid a( ){ }とは書けません。
class内でメソッドの外ならどこに書いてもOKです。
if(制御構文の一種)とは別物なので混同しないようにしてください。
voidは戻り値の型です。
戻り値というものについては下で詳しく説明していますが
ここでは戻り値というものについては書かずに進めます。
void a( ){ }を記入しただけではメソッドは動きません。
void a( ){ }の使い方は↓の通りです。
class MethodTest {
static String a;
static int b;
static int c;
|
↓実行結果
| 計算結果 = 8 計算結果 = 8 |
mainメソッドの中にd();という風に記入してあります。
d();と呼び出しがあって始めてメソッドdの{ }の中が処理されるのです。
また、「メソッド呼び出し」の時は()で終わっていますが、
System.out.println();と同じく;を付けないといけません。
もう一つ。
void d( ){ }にstaticが付きました。
staticはメソッドにも使えます。
「5:static変数と追記」
に書いた通り
これにより
「色々な場所でメソッドdが使えるようになる」
とだけ覚えておけば問題ありません。
以下は戻り値と引数の解説です。
ここから先は「コンストラクタ」の日記を見るまでは読み飛ばしても問題ないです。
| 2.メソッドの戻り値について |
void a() {
}
↑のvoidとは
「戻り値は無いです」という意味です。
この部分は必要なので、戻り値という物が必要なくても
とりあえずvoidを書いておかないといけません。
voidの部分を「int」に変えると
int型の変数(か普通の整数)を戻り値として設定しなければならなくなります。
戻り値はメソッドの処理が「return」と書いてある行になったら
メソッドから出力されるものです。
戻り値に指定できる要素は1つのみです。
(配列を使えば複数の要素を戻り値にできますが、配列は割愛します)
戻り値が出力された時点で、メソッドの処理は終了します。
出力されたものは変数に代入するか
メソッドを呼び出す時の引数として使わないといけません。
System.out.println()で出力もできます。
メソッドを呼び出して戻り値を直接引数に代入する時は
セミコロン;はいりません。
class MethodTest2 {
static int aa;
static int b;
public static void main(String[] args) {
b = a();
System.out.println(b);
System.out.println(a());
}
static int a() {
aa = 2 + 3;
return aa;
}
}
|
↓実行結果
| 5 5 |
「return」は戻り値を記述する時に必要なものです。
returnの隣に、戻り値として何を出力するかを記述します。
上のプログラムでは
a(){}内の処理が終わった後(aaに2 + 3の計算結果を代入)
最後に出力された変数aaの値を変数bに代入しています。
(戻り値として出力された5が代入される。
つまりa();は5という風に見ることもできる)
| 3.メソッドの引数について |
void a(int aa, String bb) {
}
↑の()内にある文が引数です。
()内の文の意味は
「メソッドaを呼び出したときにint型の値を()の中に入れてくれれば
このメソッド内でしか使えない変数aaに代入してメソッドの処理をしますよ」
「メソッドaを呼び出したときにString型の値を()の中に入れてくれれば
このメソッド内でしか使えない変数bbに代入してメソッドの処理をしますよ」
という意味です。
「このメソッド内でしか使えない変数○○」は
初期化の必要はありません。
ただし、↑のように複数の引数が指定されている場合は
その引数の条件を全て満たさないと
メソッドは使えません(引数の並び順も合わせる必要がある)。
引数と引数の境目は,(半角コンマ)で区切らないといけません。
「メソッドaを呼び出したときにint型の値を()の中に入れてくれれば
このメソッド内でしか使えない変数aaに代入してメソッドの処理をしますよ」
「メソッドaを呼び出したときにString型の値を()の中に入れてくれれば
このメソッド内でしか使えない変数bbに代入してメソッドの処理をしますよ」
という意味です。
「このメソッド内でしか使えない変数○○」は
初期化の必要はありません。
ただし、↑のように複数の引数が指定されている場合は
その引数の条件を全て満たさないと
メソッドは使えません(引数の並び順も合わせる必要がある)。
引数と引数の境目は,(半角コンマ)で区切らないといけません。
ピリオドではないので間違えないようにしてください。
class MethodTest3 {
static String a;
static int b;
public static void main(String[] args) {
a = "aの値:";
b = 2;
c(a, b);
}
static void c(String aa, int bb) {
System.out.println(aa + bb);
}
}
|
↓実行結果
| aの値:2 |