LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

【わかりやすく解説‼】Javaのオーバーロードの使い方

1.事前知識

事前知識として、上記リンクの内容が必要です。

2.オーバーロードとは

  • オーバーロード とは、同じメソッド名で 異なる引数の数 または 異なる引数の型 を持つメソッドを定義すること。
  • 引数の数が同じコンストラクタが 複数存在 する場合、 引数の型が同じ コンストラクタが呼び出される。
  • コンストラクタ内から this() を使用することで別のコンストラクタを呼び出すこともできる。
  • this() によるコンストラクタの呼び出しは、コンストラクタの 先頭 に記述する必要がある。

3.基本的な書き方

テストクラス
package パッケージ名;
public class メインクラス名{
    public static void main(String[] args) {
        // インスタンスの生成
        クラス名 変数名1 = new クラス名();
        クラス名 変数名2 = new クラス名(実引数);
        クラス名 変数名3 = new クラス名(変数名2と異なる型の実引数);
    }
}
オーバーロードクラス
package パッケージ名;
class クラス名{
    // インスタンス変数の定義
    private 型名 変数名;

    // コンストラクタ1(引数なし)
    クラス名(){
        初期化処理など
    }
    // コンストラクタ2(引数あり)
    クラス名(型名 引数名){
        初期化処理など
    }
    // コンストラクタ3(コンストラクタ2と異なる引数あり)
    クラス名(型名 引数名){
        初期化処理など
    }
}
  • 基本的なオーバーロードは上記のように記述します。

4.事前準備

01.png

  1. Eclipseを起動し、 [ファイル(F)]→[新規(N)]→[Java プロジェクト] を選択する。
    02.png
  2. プロジェクト名に Test1 と入力し、 完了 ボタンをクリックする。
    03.png
  3. [ファイル(F)]→[新規(N)]→[クラス] を選択する。   
    05.png
  4. パッケージと名前に Test1 と入力し、 完了 ボタンをクリックする。
    06.png
  5. Test1.java が作成されたことを確認する。
    01.png
  6. 3と同様の手順でパッケージに Test1 と入力し、 名前に TestOverload と入力し、 完了 ボタンをクリックする。
    02.png
  7. Test1.javaTestOverload.java が作成されれば成功。

5.記述例

  • オーバロード を使うメリットは、名前の違うメソッドをいくつも 覚える必要がない こと。
  • 例えば、 出欠確認 のように事前に 出欠の確認が取れている人未定の人 がいる場合などに使える。(出席・欠席・未定 の3つのメソッドを作らずにコンストラクタのみで完結できる。)
Test1.java
// 出欠確認を取るシステム
package Test1;
public class Test1 {
    public static void main(String[] args) {
        // インスタンスの生成
    	TestOverload to1 = new TestOverload("A");
    	TestOverload to2 = new TestOverload("B",1);
    	TestOverload to3 = new TestOverload("C",2);

    	System.out.println("-----4月1日-----");
    	//インスタンスの中身を表示
    	to1.showAttendance();
    	to2.showAttendance();
    	to3.showAttendance();
    }
}
TestOverload.java
package Test1;
public class TestOverload {
    // インスタンス変数の定義
    private String name;
    private int attend;

    // コンストラクタ1(引数なし)
    TestOverload(){
    	this("未入力",0);
    }
    // コンストラクタ2(引数あり)
    TestOverload(String name){
    	this(name,0);
    }
    // コンストラクタ3(コンストラクタ2と異なる引数あり)
    TestOverload(int attend){
    	this("未入力",attend);
    }
    // コンストラクタ4(引数の数が2つ)
    TestOverload(String name,int attend){
    	this.name = name;
    	this.attend = attend;
    }

	//表示メソッド
    void showAttendance(){
    	String str = "";
    	switch(attend) {
    	case 0:
    		str += "未定";
    		break;
    	case 1:
    		str += "出席";
    		break;
    	case 2:
    		str += "欠席";
    		break;
    	}
    	System.out.println(name+"さんは"+str);
    }
}
  • 上記の文をコピーして、文字コードは S-JIS を指定し、ファイル名を Test1.java , TestOverload.java で保存し、実行するとこうなります。↓↓       
    03.png

6.GitHub

GitHubにソースコードを公開しています。

7.関連

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0