未分類

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

投稿日:

          

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

同じクラスの中に、同じ名前を持つメソッドを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

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

関連記事

サンプルイメージ

練習問題(クラスの利用)(後半)

          練習10-7 下記のような結果となるように、ArrayTest1.javaにshowArrayメソッドを追加してください。 練習10-8 下記のようになるように配列の中に、負の数が …

サンプルイメージ

式と演算子

式のしくみを知る Javaの「式」の多くは、 演算子(演算するもの)とオペランド(演算の対象) を組み合わせてつくられています。たとえば、「1 + 2」の場合は、「+」が演算子、「1」と「2 …

サンプルイメージ

配列のしくみ①

プログラムの中ではたくさんのデータを扱う場合があります。例えば、50体のキャラクターの攻撃力や体力や属性を扱うプログラムを考えてみましょう。 たくさんの変数が登場するので、コードが複雑で読みにくくなり …

サンプルイメージ

画面への出力

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

Android 練習問題(タッチイベント)

     以下の様な動作をするアプリを作成してください。 問題2-1 TouchMove 初期表示時 画像上をタップすると画像が半透明で表示される。 画像上をタップしたまま指をスライドさせると画像が移 …