アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

posted by fanblog

JavaEEの前に復習をしてみる その10 オーバーロード

オーバーロードと聞くと、オーバーワークを思い浮かべてしまいます。
そんなのは、私だけ。。。
昨日、メソッドを実行する際に、値を直接もたせて処理させる。
なんてことをさせましたが、Javaにはオーバーロードという考え方がありまして、
もたせる値の型が違えば、同一の名前のメソッドを複数立てても構わないというルールがありました。

え?どういうこと?

薬剤師というクラスがあって、compaundというメソッドを3つ作ります。
通常、同じ名前のメソッドが3つあると、 compaund(); と実行させても、

おい、どのcompaundだよ!どれでもいいのか?いや、そんなことはできない!!
とエラーを返されます。

ですが、下記のプログラムのように、メソッドが持つ引数の中身が違えば、
同じ名前でも、一致する引数のものを動かせばいいと判断できるので、同一でも可能なのです。


package test;

public class Pharmacist {

public static void main (String [] args){
compound( "薬草");
compound( "薬草",3);
compound( "薬草", "毒消草" );
}

public static void compound(String item1){
System. out .println(item1+"を手に取って眺めた" );
}

public static void compound(String item1, int num1){
System. out .println(item1+"を" +num1+"個重ねてすり潰した" );
}
public static void compound(String item1,String item2){
System. out .println(item1+"と" +item2+"を調合して、新たなアイテムを作った" );

}

}



結果

薬草を手に取って眺めた
薬草を3個重ねてすり潰した
薬草と毒消草を調合して、新たなアイテムを作った


これを応用すると、同じメソッドへの命令でも、もたされた値によって動きを変えるということができるようになります。
薬剤師さんも、持っているアイテムや数量によって、処理する結果を変えることができるんですね。

オーバーロードとか、オーバーライドとか、このあたりから、じゃんじゃん出てきますね。
まだまだ入門の入門という感じです。

トラックバック

この記事へのトラックバックURL
※ブログオーナーが承認したトラックバックのみ表示されます。
https://fanblogs.jp/tb/2006071

コメント

お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのコメント

Sans Ordonnance Cipro |2021年09月12日(Sun) 06:27
Shade さん

こんばんはっ Habitat ですっ

昔の人間なんで、多重定義って言葉で置き換えて聞いてますww

たとえば、今回とは違う使い方で、
compound(String item1) では、
 compound(String item1, New String.Empty) を呼び
compound(String item1, String item2) では、
 compound(String item1, String item2, New String.Empty) を呼び
compound(String item1, String item2, String item3) で、本処理を仕込む
というのもありですね

New String.Empty はJava で使えるかわかりませんので、あしからずww

ちなみに、このNew String.Empty の代わりに固定値をいれれば、
引数していしなかった場合の、デフォルト値代わりに出来ます
Habitat |2014年01月19日(Sun) 22:53
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: