メソッドとは?
メソッドとは、何度も同じコードを書かなくていいように処理をまとめたものです。
開発規模が大きくなるにつれて、共通の処理は多くなります。
そういった場面で活躍してくれるのがメソッドです。
例えば、足し算をする処理は共通の処理なのでメソッドにする、といったイメージです。
メソッドの構文
メソッドの構文は以下の通りです。
アクセス修飾子 戻り値 メソッド名(引数) {
// 何らかの処理
// 戻り値がvoid以外の場合は「return 戻り値」が必要
}
分かりづらいので、日本語の箇所を解説します。
それでも分かりづらいので、サンプルコードも一緒にみてください。
項目 | 説明 |
アクセス修飾子 | 「public」, 「protected」, 「何も書かない」, 「private」 の4つの内、1つを記述 |
戻り値 | 戻りの型を記述、戻り値がない場合は「void」を記述 |
メソッド名 | プログラマーが自由に指定 |
引数 | 必要な場合は「型 変数名」で記述、なしの場合は空白 |
サンプルコード
サンプルコードを2つ紹介します。
①引数を2つ渡して足し算する
まず、Calcクラスにplusメソッドを作成します。
引数はint型の値を2つ設定して、戻り値はint型にしています。
public class Calc {
public int plus(int value1, int value2) {
return value1 + value2;
}
}
次にMainクラスにmainメソッドを作成し、Calcクラスを呼び出します。
最後にmainメソッド内でCalcクラスのplusメソッドを呼び出してコンソール表示します。
public class Main {
public static void main(String[] args) {
Calc calc = new Calc();
System.out.println(calc.plus(2, 5));
}
}
このプログラムを実行すると「7」がコンソールに表示されます。
②文字列をコンソール表示
今度は、Consoleクラスを作成し、String型の引数を持つdisplayメソッドを定義します。
displayメソッドでは、戻り値をvoidにしてコンソールに表示するようにしています。
public class Console {
public void display(String value) {
System.out.println("This is " + value + "!");
}
}
次に、Mainクラスにmainメソッドを作成して、Consoleクラスのdisplayメソッドを呼び出します。
public class Main {
public static void main(String[] args) {
Console console = new Console();
console.display("Java Training");
}
}
ここでよく勘違いしてしまうポイントについて説明します。
書籍や他のサイトのサンプルコードでも戻り値がvoidの場合は、
System.out.println()になっているため、voidの時はコンソール表示と勘違いされやすいです。
voidの場合は「何も返さない」が正解です。returnしなければ何でもいいです。
サンプルコード(応用編)
応用的なメソッドの使い方を2つ紹介します。
①Listから特定の文字を含むものだけ取り出す
以下では、引数で渡したListの中から5文字以上のものだけを抽出して、
Listで返すプログラムを作成します。
import java.util.ArrayList;
import java.util.List;
public class Training1 {
public static void main(String[] args) {
// Listの準備
List<String> list = new ArrayList<>();
// 値の格納
list.add("yelow");
list.add("red");
list.add("blue");
list.add("white");
list.add("green");
// コンソール表示とメソッド呼び出し
System.out.println(getFiveLength(list));
}
// メソッド作成
private static List<String> getFiveLength(List<String> list) {
// 返却用Listの準備
List<String> newList = new ArrayList<>();
// 引数のListを繰り返し処理
for (String val : list) {
// Listの中の値の長さが5以上の時
if (val.length() >= 5) {
// 返却用Listに格納
newList.add(val);
}
}
// Listの返却
return newList;
}
}
②データを格納したクラスを引数で渡す
データ格納用のクラスを作成し、データを格納した状態でメソッドに渡します。
メソッドでは、渡ってきたデータを加工してコンソールに表示するようにします。
public class Training2 {
public static void main(String[] args) {
// データ格納用クラスの準備
TrainingData td1 = new TrainingData();
// 値のセット
td1.setName("斎藤");
td1.setAge(33);
// メソッド呼び出し
getDetail(td1);
// 改行
System.out.println();
// データ格納用クラスの準備
TrainingData td2 = new TrainingData();
// 値のセット
td2.setName("近藤");
td2.setAge(19);
// メソッド呼び出し
getDetail(td2);
}
// メソッド作成(引数はデータ格納用クラス)
private static void getDetail(TrainingData td) {
// コンソール表示とデータ格納用クラスからデータの呼び出し
System.out.println("名前:" + td.getName());
System.out.println("年齢:" + td.getAge());
}
}
// データ格納用クラス
public class TrainingData {
// 名前
private String name;
// 年齢
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
備考
Listの使い方については、別の記事で解説していますので、そちらも参考に。
最後に
最後まで読んでいただき、ありがとうございます。
今回は、Javaでメソッドを作る方法について解説しました。
サンプルコードも2つ用意していますので、いろいろ拡張してみてください。
コメント