未分類

メソッドのオーバーロード

投稿日:

          

前の節ではクラスの「カプセル化」機能を学びました。クラスでは、

同じクラスの中に、同じ名前を持つメソッドを2つ以上定義する

ということができます。

このクラスには、「setChara()メソッド」というメソッドが3つあります。このように、

同じ名前の複数のメソッドを、同じクラス内に定義しておく

ということができます。これをメソッドのオーバーロードといいます。

ただし、メソッドをオーバーロードするときには、各メソッドの引数の型・個数が異なるようにしなければなりません。

上記のコードでは、3種類のsetChara()メソッドを呼び出しています。

  1. 引数が2個のもの
  2. 引数がchar型のもの
  3. 引数がint型のもの

であるsetChara()メソッドが、それぞれ正しく呼び出されています。つまり、

1つのメソッド名の使用で、引数の異なる複数の中から自動的に処理を行ってくれるのです。

「setChara」のような1つの名前が、その状況に応じて別々のはたらきを持つことを、多態性(ポリモーフィズム)といいます。

オーバーロードについての注意

最初に説明したように、オーバーロードするメソッドは、引数の型や数が異なっていなければなりません。

もし、引数の型と数が全く同じで、戻り値だけが異なる次の2つのメソッドをオーバーロードできてしまうとしたら、どうなるでしょうか?

  • int setChara(int t)
  • void setChara(int t)

すると、次のような呼び出しをしても、2つのうちどちらのメソッドか、判断できないでしょう。

setChara(37);

オーバーロードするとき、引数の型または個数が異なるようにしておきましょう。

最後に2つのint型の最大値を求めるメソッドと、3つのint型の最大値を求めるメソッドをオーバーロードしたプログラムを示します。

クラスに欠かせないフィールドやメソッドについての重要なしくみを、学んできました。次の章では、コンストラクタについて説明していきます。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サンプルイメージ

クラスライブラリのしくみ

                 今まで、クラスの基本について学びました。これまでは以下のような手順でクラスを作成してきました。 クラスを設計するコードを書く → クラスを宣言するクラスを利用するコー …

サンプルイメージ

配列の応用

配列の要素数を調べるコードを記述します。配列の要素数(ハコの数)は、配列の長さ(大きさ)と呼ばれています。 Javaでは、配列要素に.(ピリオド)をはさんでlengthと記述すると、配列の要素数をあら …

サンプルイメージ

演算子の優先順位

a + 2 * 5  2*5が先に評価されます。 この式では、+演算子と*演算子の2つが使われています。通常の四則演算では、たし算よりかけ算を先に計算します。これは、かけ算の方が 優先順位が高い から …

サンプルイメージ

画面への出力

前回画面に文字列を出力するコードを学習しました。「System.out.println・・・」という言葉に注目してください。この「System.out」とは、 標準出力(standard output …

サンプルイメージ

日付クラス

        Dateクラスは日時を取得するときに使用します。「import java.util.Date」のインポート文が必要です。 次に日付のフォーマットを設定するには、SimpleDateFo …