ソースコードで学ぶ SJC-P 5.0 ドリル

ソースコードで学ぶ SJC-P 5.0 ドリル

第10回 オーバーロードを習得する

山本道子(有限会社 Ray)
2008/6/17

第9回1 2次のページ

本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。

 連載第10回で最終回を迎える今回は、オーバーロードに関する出題です。

ソースコードで学ぶ SJC-P 5.0 ドリル 各回のインデックス
第1回 Java SE 5.0の新機能、列挙型を習得する
第2回 Java SE 5.0の新機能、staticインポートを習得する
第3回 thisキーワードを使いこなす
第4回 Java SE 5.0の新機能、拡張for文を習得する
第5回 再利用性を高める抽象クラスを習得する
第6回 参照型の一種、インターフェイスを習得する
第7回 基本データ型の型変換を習得する
第8回 参照型の型変換を習得する
第9回 アクセス制御を習得する
第10回 オーバーロードを習得する

オーバーロード

 1つのクラス内に、同じ名前のメソッドやコンストラクタを複数定義することができます。これをオーバーロードと呼びます。

 ただし、それぞれのメソッドが別物であることを判断するために、引数の並び、型、数が異なっていることが条件です。

【構文】メソッドのオーバーロード
void method(){ }
void method(int a) { }
void method(int a, int b) { }
void method(String s) { }

【構文】コンストラクタのオーバーロード
class Employee {
Employee() { }
Employee(int id) { }
Employee(int id, String name) { }

class Foo { 
  int   x;    int   y;
  // 引数なしの display() メソッド
  public void  display() {
    System.out.println("-- display()");
    System.out.println("x = " + x);
    System.out.println("y = " + y);
  }
  // 引数が 2 つの display() メソッド
  public void display(int x, int y) {
    this.x = x;
    this.y = y;
    System.out.println("-- display(int x, int y)");
    System.out.println("x = " + x);
    System.out.println("y = " + y);
  }
  public void setData(int x, int y) {
    this.x = x; this.y = y;
  }
}
class Sample1 {
  public static void main(String args[]) {
    Foo obj = new Foo();
    obj.setData(10,20);
    // 引数なしの display() メソッドの呼び出し
    obj.display();        
    // int 型の引数を 2 つ取る display() メソッドの呼び出し
    obj.display(300,400);   
  }
}
サンプルコード1(Sample1.java)

C:\sample>java Sample1
-- display()
x = 10
y = 20
-- display(int x, int y)
x = 300
y = 400
C:\sample>
サンプルコード1の実行結果

  演習問題

 以下の問題を考えてみてください。解答と解説は次のページにあります。

問題

 次のプログラムをコンパイルし、実行するとどうなりますか? 1つ選択してください。

 1. public class Test {
 2.   public void method() {}
 3.   public int method() { return 0;}
 4.   public double method(int a){ return 0.0; }
 5. }

A.実行時エラー

B.2行目にエラーがあるためコンパイルエラー

C.3行目にエラーがあるためコンパイルエラー

D.4行目にエラーがあるためコンパイルエラー

E.コンパイルは成功し、ほかのクラスからこれらのメソッドは問題なく呼び出しができる

解説とさらにもう一歩、オーバーロードの注意点

第9回1 2次のページ

今回のインデックス
 オーバーロードを理解しよう (1ページ)
 解説とさらにもう一歩、オーバーロードの注意点(2ページ)

@IT Special 注目企業
@IT Special ラーニング
関連キーワード

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード


スキルアップに役立つサービス
ITトレメ スキルアップに役立つ問題を無料で出題
ラーニングカレンダー ITスキル研修4000件、最新情報の検索できます

キャリアアップ

スポンサーからのお知らせ

・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ

- PR -
@IT Special 注目企業
インデックス

イベントカレンダー

PickUpイベント

- PR -
もっと見る

お勧め求人情報


@IT Special ラーニング