メソッド(Method)
メソッドは処理を単位化してまとめたもので、関数とも呼ばれマス。
処理をメソッド化するメリットとしては、以下のようなものが挙げられます。
- 同じ処理を繰り返す必要がなくなる
- 新しい機能や処理を追加する際に、既存のコードに変更を加える必要がない
- プログラムの構造が明確になり、動作を理解しやすくなる
- バグの発見や修正が容易になる
- コードの記述量を減らすことができる
- コードの読みやすさ・保守性の向上
メソッドは、処理をひとまとめにすることで、コードを簡潔かつわかりやすくすることができます。
また、メソッドを呼び出すことで、処理の流れを明確にすることができます。
そのため、コードの読みやすさ・保守性が向上します。
- 再利用性の向上
メソッドは、同じ処理を複数回使用する場合、一度定義したメソッドを再利用することで、コードの重複を防ぐことができます。
そのため、再利用性が向上します。
- プログラムの分割・整理
メソッドは、プログラムを機能や処理ごとに分割することで、プログラムの構造を明確にすることができます。
そのため、プログラムの分割・整理が容易になります。
- 処理の効率化
メソッドは、同じ処理を複数回実行する必要がある場合、メソッドを呼び出すことで、処理を1回実行するだけで済むようになります。
そのため、処理の効率化が図れます。
- 生産性の向上
メソッドは、処理を抽象化することで、コードの記述量を減らすことができます。
そのため、生産性が向上します。
Javaのメソッドは、プログラミングの基本的な概念であり、これらのメリットを活用することで、効率的で保守性の高いプログラムを作成することができます。
メソッドの宣言
メソッドの宣言は、以下の構文で記述します。
修飾子 戻り値型 メソッド名(引数) {
// メソッドの処理
}
修飾子
:メソッドのアクセス修飾子。public、protected、private、defaultなどがあります。戻り値型
:メソッドの戻り値の型。voidの場合は戻り値がありません。メソッド名
:メソッドの名前。引数
:メソッドが受け取る引数。(仮引数)
メソッドの処理は{ }
で囲む。
メソッドに引数を渡す場合は、メソッドの宣言時に引数の型と名前を指定します。
メソッドに戻り値がある場合は、メソッドの宣言時に戻り値の型を指定します。
戻り値は、メソッドの処理の結果を返すことができます。
配列を使う
メソッドの引数や戻り値として、配列を使用できます。
配列を使用する場合は、配列の型と要素数を指定します。
public static void printGreetings(String[] greetings) {
for (String greeting : greetings) {
System.out.println(greeting);
}
}
public
修飾子
メソッドがどこからでもアクセス可能であることを示します。static
修飾子
メソッドがインスタンスを作成せずにクラスから直接呼び出せることを示します。
このメソッドはインスタンスを作成せずに利用できます。void
戻り値型
このメソッドは値を返さず、何も戻りません。printGreetings
メソッド名
メソッドの名前はprintGreetings
です。
この名前はメソッドを呼び出す際に使用されます。(String[] greetings)
パラメータ
メソッドに渡されるデータを受け取るためのパラメータです。
このメソッドは文字列の配列 (String[]
) を受け取ります。
この配列はgreetings
という名前でメソッド内で使用できます。- メソッドの本体
メソッドの本体は波括弧{}
内にあります。
この部分には実際の処理が記述されています。
渡されたgreetings
の各要素をfor
ループを使用して繰り返し処理し、各要素をSystem.out.println
を用いて出力します。
メソッドの呼び出し
メソッドを呼び出すには、以下の構文で記述します。
オブジェクト.メソッド名(引数);
オブジェクト
:メソッドを呼び出すオブジェクト。メソッド名
:メソッドの名前。引数
:メソッドに渡す引数。(実引数)
引数は、メソッドの処理で使用できます。
// 配列を使うメソッドの呼び出し
String[] greetings = {"Hello", "World"};
printGreetings(greetings);
}
String[] greetings = {"Hello", "World"};
配列greetings
を宣言して初期化しています。
この配列はString
型の要素を持ち、”Hello” と “World” という2つの挨拶文字列を格納しています。printGreetings(greetings);
printGreetings
というメソッドを呼び出しています。
このメソッドは上記「配列を使う」のコードで提供されているものです。greetings
配列を引数として渡しています。
printGreetings
メソッドは、与えられた文字列の配列内の各要素を画面に出力する役割を果たします。
この場合、greetings
配列の内容が出力され、”Hello” と “World” が表示されます。
メソッドのオーバーロード
同じ名前のメソッドを複数定義することを、メソッドのオーバーロードと呼びます。
オーバーロードされたメソッドは、引数の型や個数、順序が異なる必要があります。
// オーバーロードのメソッド.1
public static int sum(int num1,int num2) {
int sum = num1+num2;
return sum;
}
// オーバーロードのメソッド.2
public static int sum(int[] numbers) {
int sum = 0;
for (int number : numbers) {
sum += number;
}
return sum;
}
オーバーロードのメソッド.1public static int sum(int num1, int num2)
このメソッドは、整数型の2つの引数 num1
と num2
を受け取り、それらの値を足し合わせて合計値を整数として返します。
// オーバーロードのメソッド.2public static int sum(int[] numbers)
このメソッドは、整数型の配列 numbers
を受け取り、その配列内のすべての要素を合計して合計値を整数として返します。
sum(int num1, int num2)
メソッドは2つの整数を加算する場合に使用でき、sum(int[] numbers)
メソッドは整数の配列の合計を計算する場合に使用できます。
同じ名前のメソッドでありながら、引数の型や個数に応じて異なる処理を行えるのがメソッドオーバーロードの利点です。
コードまとめ
public class Main {
public static void main(String[] args) {
// 引数なしのメソッドの呼び出し
sayHello();
// 引数ありのメソッドの呼び出し
printNumbers(1, 10);
// 戻り値ありのメソッドの呼び出し
int sum = add(1, 2);
System.out.println(sum);
// オーバーロード.1の呼び出し
System.out.println(sum(10,5));
// オーバーロード.2の呼び出し
int[] numbers = {1, 2, 3};
System.out.println(sum(numbers));
// 配列を使うメソッドの呼び出し
String[] greetings = {"Hello", "World"};
printGreetings(greetings);
}
// 引数なしのメソッド
public static void sayHello() {
System.out.println("Hello, world!");
}
// 引数ありのメソッド
public static void printNumbers(int start, int end) {
for (int i = start; i <= end; i++) {
System.out.println(i);
}
}
// 戻り値ありのメソッド
public static int add(int a, int b) {
return a + b;
}
// オーバーロードのメソッド.1
public static int sum(int num1,int num2) {
int sum = num1+num2;
return sum;
}
// オーバーロードのメソッド.2
public static int sum(int[] numbers) {
int sum = 0;
for (int number : numbers) {
sum += number;
}
return sum;
}
// 配列を使うメソッド
public static void printGreetings(String[] greetings) {
for (String greeting : greetings) {
System.out.println(greeting);
}
}
}
↓実行結果
Hello, world!
1
2
3
4
5
6
7
8
9
10
3
15
6
Hello
World
まとめ表
項目 | 説明 |
---|---|
メソッド | 処理を単位化してまとめたもの |
メソッドの宣言 | メソッドの定義 | 修飾子 戻り値型 メソッド名(引数); |
メソッドの呼び出し | メソッドの実行 | オブジェクト.メソッド名(引数); |
メソッドの引数 | メソッドの処理に利用できる |