025-オブジェクト指向の基本-メソッドのオーバーロード【新人エンジニアが最初に覚えたい100のJava文法】

ユーチューブ動画

メソッドのオーバーロードについて解説します。

ソースコード

public class BasicClass {
	public static void main(String[] args) {
		Product product1 = new Product();
		System.out.println(product1.getPrice());
		Product product2 = new Product();
		System.out.println(product2.getPrice(10));
	}
}
class Product {
	private int price = 10000;
	public int getPrice(){
		return this.price;
	}
	public int getPrice(double rate) {
		return (int) (this.price * (100 - rate) / 100);
	}
}

解説

メソッドのオーバーロードについて解説します。

メソッドのオーバーロードを使うと、引数の数や種類で条件分岐したいときにコードを削減することができます。

みなさんが何回も使っていたprintlnメソッドはオーバーロードの典型的なパターンです。

引数に対して、整数でも、小数でも、文字列でも引数に入れることができる便利な定義になっています。

サンプルコードを確認しましょう。

オーバーロードの条件は、メソッドの名前を同じにすること、引数の数や種類を変えることです。

サンプルコードでは、

getPriceメソッドが2つ宣言されています。

引数がないメソッドと引数があるメソッドです。

メソッドの呼び出し側を確認しましょう。

Productクラスのインスタンスが2つ作成されています。

引数がないメソッドと引数に10を入れたメソッドが呼び出されています。

同じメソッド名でも引数の違いを自動的に認識して、呼び出すメソッド

これがオーバーロードです。

引数がない場合には、メンバ変数をそのまま表示します。

引数がある場合には、引数を割引率として、割り引いた値段を表示しています。

オーバーロードのポイントは、メソッドの名前を同じにして、引数の数や種類を変えることです。(引数の数・型・順番の少なくともひとつが異なる必要がある

間違えやすいのでしっかりと整理しましょう。

以上、メソッドのオーバーロードについて解説しました。

このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。