🗂

0526週まとめ -メソッドの基礎-

に公開

5/26週の研修における復習ノートです。
間違って理解しているところがあるかもしれないので、その際は指摘をお願いします

メソッドとは

  • 特定の処理に名前をつけたもの

    • 複数の命令文をひとまとめにして名前をつけたもの
    • 実行時に受け取るデータを「引数」、返す処理結果を「戻り値」という
    • Javaが提供しているメソッドと自分で定義できるメソッドが存在する

メソッドの定義

  • 基本ルール

    • クラスブロックの中に記述
    • メソッド内で定義した変数はメソッド内でのみ有効
    • メソッド定義の並び順は問わない
public class FullNameTest { 
	public static void main(String[] args) {
        //処理の記述
	}
//メソッドはクラスブロック内に記述
	public static 戻り値の型 メソッド名 (データ型 変数名1, データ型 変数名2){
        //処理の記述
        return 戻り値;
	}
}

この形さえ覚えればメソッドの記述は可能
戻り値がない場合(メソッド内で表示させるなど)は戻り値の型を「void」で指定する
メソッドの後ろの()には材料を受け取るための変数を指定する(仮引数)

以下、メソッドの定義の種類をまとめる

  1. 引数のあるメソッド

    • メソッドは引数を受け取ることができる
    • 仮引数で指定したデータ型と数に一致したデータ(実引数)を受け取る
    • 戻り値がないため、メソッドに記述するデータ型は「void」
  • フルネームを表示するメソッド

    • 仮引数でLastNameとFirstNameを指定する(String型)
    • 実引数で苗字と名前を指定し、メソッドに渡す
FullName.java
public class FullNameTest {
	//フルネームを表示するメソッド	
	public static void main(String[] args) {
		printFullName("織田","信長");
	}
	public static void printFullName(String lastName , String firstName) {
		System.out.println(lastName + " " + firstName);
	}
}
  1. 戻り値のあるメソッド

    • 引数のあるメソッドと書き方は同じ
    • 戻り値のデータ型を指定する必要がある
    • メソッドブロックの最後にreturn文を書く(return文以降に処理は書かない)
  • 3,5,15の倍数を判断するメソッド

    • 仮引数でCheckNumを指定する(int型)
    • 実引数でチェックしたい数字を指定し、メソッドに渡す
    • 戻り値の型をString型で指定し、mainに返す
FizzBuzz.java
public class FizzBuzzTest {
	public static void main(String[] args) {
		int a = 30;
		String ans = FizzBuzz(a);
		System.out.println(ans);
	}
	public static String FizzBuzz (int CheckNum) {
		if(CheckNum % 15 == 0) {
			String check = "FizzBuzz";
			return check;
		}else if(CheckNum % 3 == 0) {
			String check = "Fizz";
			return check;
		}else if(CheckNum % 5 == 0) {
			String check = "Buzz";
			return check;
		}else{
			String check = "Error";
		return check;
		}
	}
}

オーバーロード

クラス内に同じ名前のメソッドを複数個定義することができる

  • オーバーロードの条件

    • 仮引数の数が異なる
    • 仮引数のデータ型が異なる
    • 仮引数のデータ型の並びが異なる
    • 戻り値の型はオーバーロードには関係ない

同じ名前のメソッドであっても、受け取る実引数のデータ型をメソッドの仮引数に合わせることで、メソッドを特定し、使用することができる。メソッドを複数定義し、用途が不明瞭になることを防ぐ。
(シグネチャ:「メソッド名」「引数の個数、データ型、並び順」の組み合わせ JVMはシグネチャでメソッドを特定する)

Discussion