1
0
Qiita×Findy記事投稿キャンペーン 「自分のエンジニアとしてのキャリアを振り返ろう!」

Hello Worldからの復習 ~オーバーロード編~

Last updated at Posted at 2024-03-05

話の枕を書かずにやってみたら、シンプルになった。

あたりまえかw

お品書き
  • オーバーロードって?
  • メリットは?
  • Sample

◆オーバーロードって?

設計図クラスを作るときに、同じ名前で引数の型や数が違うメソッドをいくつも定義できる。
メソッドを複数定義することをいう。


setDataをオーバーロードしている

java
class Student{
  void setData(String n){ //名前の引数のみ
  .
  .
}
 void aetData(String n, int e, int m){ //名前とint型の点数を2つ
 .
 .
 }
}

オーバーロードしたのを呼び出すmainメソッド

java

main(  ){
  Student stu = new Student(); //Studentクラスを基に変数stuを作りインスタンス化
  stu.setData("大輔");
  stu.setData("大輔", 80, 90);
  .
  .
  }

インスタンス化した時のイメージ図

呼び出すメソッドは名前引数の組み合わせで決めている。
もし、名前と引数の組み合わせで合うものがなければ、コンパイルエラーになる。

※戻り値の型は合っていなくても問題はない。

◆メリットは?

設計図クラスとしては、
同じデータを設定するためのメソッドなのでSetDataという同じ名前にした方が、同じような処理をしているのが見た目でわかるという
プログラム自体がわかりやすくなるのが大きなメリット。

メソッドをたくさん作った場合、その分別々の名前を付けることになると大変。
setData1..setData2..setData5..どれがどれ?みたいな。

これが、同じ名前で良いなら名前を付けるのがラク。

メソッドを呼び出す側としては、
メソッド名が変わらないため、使いやすいというメリット。

例えば、
System.out.println()
これもオーバーロードして使用されている。
そのため、int,double,boolean,Stirng等、全部printlnメソッドとして呼び出して使える。

◆Sample

java
class Student2{
  String name;
  int engScore;
  int mathScore;

  void setData(String n){ //オーバーロード
    name = n;
  }
  void setData(String n, int e, int m){ //オーバーロード
    name = n;
    engScore = e;
    mathScore = m;
  }
  void setScore(int e, int m){
    engScore = e;
    mathScore = m;
  }
  void display(){
    System.out.println(name + "さん");
    System.out.println("英語" + engScore + "点・数学" + mathScore + "点");
  }
}

java
class StuSample2{
  public static void main(String[] args){
    Student2 stu1 = new Student2(); //インスタンス化
    Student2 stu2 = new Student2(); //インスタンス化

    stu1.setData("大輔"); //インスタンス化した変数にデータ格納
    stu1.setScore(90, 80); // 同上
    stu1.display(); //表示するdisplayメソッドの呼び出し

    stu2.setData("湊丞", 75, 100); //引数を3つまとめて格納
    stu2.display();
  }
}
cmd
C:\Java\1>javac StuSample2.java

C:\Java\1>java StuSample2
大輔さん
英語90点・数学80点
湊丞さん
英語75点・数学100点

C:\Java\1>

メソッドの呼び出しの時にはメソッド名と引数の2つの情報を見て、呼び出すメソッドを決めているのがポイント。

オーバーロードとは引数の型や数が違ければ、同じ名前で複数定義出来るということですな。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0