基礎(一部抜粋)
メソッドの呼び出し方(自クラス)
- staticがついているメソッドからは、staticがついていないメソッドは呼び出せない
- staticではないメソッドは「インスタンスメソッド(動的なメソッド)」とも言う
そのため、インスタンス化する必要がある
1.クラスのインスタンスを作る
例)
Main a = new Main();
2.クラスのインスタンスを使ってメソッドを呼び出す
例)aクラスにprintHelloインスタンスメソッドがあるとする
a.printHello();
メソッドの呼び出し方(他クラス)
- staticなメソッドからstaticなメソッドを呼び出す場合は
「クラス名.メソッド名」 - staticなメソッドからstaticでないメソッドをメソッドを呼び出す場合は
1.インスタンス作成
例)
Other other = new Other();
2.インスタンスを使ってメソッド呼び出し
例)otherクラスにprintHelloインスタンスメソッドがあるとする
other.printHello();
オーバーロード
引数(型、数、順序)が異なっていれば同じメソッド名が作成できる。
改修する際に、既存のメソッドをいじると影響範囲がわからない場合、同じメソッド名で引数を変えることで悪影響を与えずに明瞭性や利便性が向上する。
※例えば、printlnにどの型の引数を渡してもエラーにならないのは、オーバーロードされているためである。呼び出し側からしたら意識せずに済むので大変楽。
staticメソッド
処理内容が決まっているメソッドに対して使用する。
(静的メソッド)
インスタンスメソッドは、中身が決まっていない場合(呼び出し側に詳細処理は任せたい場合)に使用する(動的メソッド)
そのため、インスタンスを作成せずインスタンスメソッドを呼び出しても、中身がないため呼び出せずエラーとなる。
命名規則
変数名、メソッド名
方式:ローワーキャメルケース
- 先頭小文字。他も小文字。
- 複数単語を組み合わせる場合、2単語目以降は単語の先頭を大文字にする
- メソッド名は意味を明瞭にする
例)何かを取得するメソッドの場合
getSomething
やgetWeather
にする - 動詞を使用する
メソッドは何らかのアクションを表すため、動詞で始めることが多い
例)add
get
print
- 短く簡潔に
- 一貫性
同じプロジェクト又は、同じチーム内でメソッド名に一貫性を持たせる。 - 省略形を避ける
クラス名、インターフェース名
方式:アッパーキャメルケース
- 先頭大文字。他小文字。2つ以上の単語を連結する場合に単語の先頭を大文字とする。
定数名
方式:大文字のスネークケース
- すべて大文字。2つ以上の単語を連結する場合、アンダーバー(_)で連結
配列の受け渡し
例)引数が配列
int[] a = {10, 20, 30};
displayArray(a);
static void displayArray(int[] array){
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
/** 結果:
* 10
* 20
* 30
**/
例2)戻り値が配列
int[] a = getArray();
for(i=0;i<a.length;i++){
System.out.println(a[i]);
}
static int[] getArray(){
int[] array = {10,20,30};
return array;
}
参照型の引数
-
呼び出し側の引数が基本データ型の場合、メソッドの引数に箱ではなく値がコピーされて処理される。
そのため、メソッド内で変数値を書き換えても元の値は上書きされない。 -
呼び出し側の引数が参照型の場合、メソッドの引数に箱(値の住所)がコピーされて処理される。
そのため、メソッド内で参照先データを書き換えた場合、呼び出し側の参照先データに影響する。
(上書きされる)