LoginSignup
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2020-04-23

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
  3. You can use dark theme
What you can do with signing up
0