Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで同じ名前のメソッドを1つのクラスに複数定義できる?オーバーロードの基本を解説

はい、できます。 Javaでは、同じ名前のメソッドを1つのクラス内に複数定義することが可能です。ただし、パラメータ(引数)の型・数・順序が異なっている必要があります。この仕組みは「メソッドのオーバーロード(多重定義)」と呼ばれ、どのメソッドが呼び出されるかは、実際に渡された引数によって決まります。

なお、戻り値の型だけが異なり引数が同一の場合はオーバーロードとして認められないため、注意が必要です。

以下の例では、同じ名前の display メソッドを3つ定義しています。それぞれ引数なし・引数1つ・引数2つと異なっており、呼び出し時に渡す引数に応じて、適切なメソッドが自動的に選択されます。

コード例

public class MethodWthSameNameTest {
    public void display() { // 引数なしのメソッド
        System.out.println("display() method with no parameter");
    }
    public void display(String name) { // 引数が1つのメソッド
        System.out.println("display() method with a single parameter");
    }
    public void display(String firstName, String lastName) { // 引数が2つのメソッド
        System.out.println("display() method with multiple parameters");
    }
    public static void main(String args[]) {
        MethodWthSameNameTest test = new MethodWthSameNameTest();
        test.display();
        test.display("raja");
        test.display("raja", "ramesh");
    }
}

実行結果

display() method with no parameter
display() method with a single parameter
display() method with multiple parameters

  1. Javaのpack()メソッドとは?使い方とsetSize()との違いを解説

    pack()メソッドは、JavaのWindowクラスで定義されているメソッドで、フレーム内のすべてのコンポーネントがそれぞれの推奨サイズ(preferred size)以上で表示されるように、ウィンドウのサイズを自動的に調整します。 代替手段として、setSize()メソッドやsetBounds()メソッドを呼び出して、フレームのサイズを明示的に指定する方法もあります。しかし一般的には、pack()メソッドを使用する方がsetSize()よりも推奨されています。その理由は、pack()がフレームのサイズ決定をレイアウトマネージャーに委ねることができ、レイアウトマネージャーはプラットフォーム間の

  2. JavaのSwingUtilities.invokeLater()メソッドの使い方を徹底解説

    invokeLater()メソッドとはinvokeLater()メソッドは、SwingUtilitiesクラスが提供するstaticメソッドの一つで、AWTイベントディスパッチスレッド(Event Dispatch Thread)上でタスクを非同期に実行するために使用されます。このメソッドはSwingUtilities.invokeAndWait()とよく似た動作をしますが、大きな違いは、処理のリクエストをイベントキューに登録した後、すぐに呼び出し元へ制御を返すという点です。つまり、invokeLater()は引数で渡されたRunnableオブジェクト内のコードブロックの実行完了を待ちません。