未分類

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

投稿日:

          

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

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

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

関連記事

サンプルイメージ

for文のしくみを知る

激レアキャラをゲットするまでは・・・→レアガチャを引き続ける 私たちの生活に朝起きる、歯を磨く、朝食を食べる、学校に行く・・・といった「繰り返し処理」を行っています。 Javaでは、このような繰り返し …

Android 図形、画像の描画

     ソースコードの解説 GraphicsExはプログラムの本体となるクラスです。 GraphicsView.javaを解説します。 ①ラインの描画(25行目) 描画前に「ライン幅」と「描画スタイ …

サンプルイメージ

練習問題(インターフェイス)

     練習11-1 下記のコードの実行結果がどう出力されるかを答えてください。 練習11-2 Shape.java 図形を表すインターフェイスShapeを作成してください。このインターフェイスでは …

サンプルイメージ

プログラミングの効率的な勉強法

やる前から苦手意識を持たない。答えは一つではない。 プログラミングはパソコンに対してこうしろと命令文を書いているだけです。 少し勉強しただけで、自分にはプログラミングに向いていないと諦めてしまう人がい …

サンプルイメージ

スレッドの基本

        これまでのプログラムは、main()メソッドから始まって、順番に文を実行、条件判断文をたどっていました。 Javaでは、この「処理の流れ」を複数もつことができます。 コード上から複数の …