Java プログラミングでは、メソッド シグネチャはメソッドの一意の識別子を指します。これはメソッド名とそのパラメータのリストで構成されます。このシグニチャは、あるメソッドを別のメソッドと区別するのに役立ち、Java コンパイラがメソッド呼び出しを対応する定義と照合できるようにします。メソッド シグネチャには次のコンポーネントが含まれます。
メソッド名: | これはメソッドに与えられる名前であり、有効な Java 識別子である必要があり、命名規則に従っています。メソッド名は説明的であり、実行する機能を反映している必要があります。
パラメータリスト: | メソッドが呼び出されたときに受け取ることが期待されるパラメータまたは引数を指定します。リスト内の各パラメータは、パラメータのタイプとその名前で構成されます。複数のパラメータはカンマで区切られます。メソッドがパラメータを必要としない場合は、空のパラメータ リストが使用されます。例えば:
public void methodName() {}
メソッドにパラメータがある場合、シグネチャにはパラメータのタイプと名前が含まれます。
public void メソッド名(int param1, String param2) {}
ブール値を文字列に変換する
戻り値の型: | メソッドが返す値のデータ型を定義します。メソッドが値を返さない場合、戻り値の型は void として指定されます。値を返す場合、戻り値の型は戻り値のデータ型と一致する必要があります。例えば:
public int methodName() {}
メソッドが配列またはオブジェクトを返す場合、戻り値の型は、返されたオブジェクトの配列型またはクラスを表します。メソッド名とパラメータ リストの組み合わせにより、クラス内のメソッドを一意に識別します。 Java はメソッドのオーバーロードをサポートしています。つまり、名前は同じでパラメータ リストが異なる複数のメソッドを定義できます。オーバーロードされたメソッドには異なるシグネチャがあり、コンパイラは指定された引数に基づいて実行する適切なメソッドを決定できます。メソッドの署名には、メソッドのアクセス修飾子 (public、private、protected など) やその他の修飾子 (static または Final など) が含まれないことに注意することが重要です。これらの修飾子はメソッドの可視性と動作を指定しますが、シグネチャの一部とはみなされません。
アクセス修飾子: | メソッド署名の一部とはみなされませんが、public、private、または protected などのアクセス修飾子はメソッドの可視性を決定します。これらは、メソッドにアクセスできる場所を指定します。たとえば、パブリック メソッドはどのクラスからでもアクセスできますが、プライベート メソッドは同じクラス内でのみアクセスできます。
修飾子: | アクセス修飾子に加えて、メソッドには、メソッドのさまざまな動作や制約を定義する、static、final、abstract、synchronized などの他の修飾子を含めることができます。これらの修飾子もメソッド シグネチャには影響しません。
例外: | メソッドが 1 つ以上の例外をスローする場合、それらはメソッド シグネチャの一部です。例外は、メソッド シグネチャ内で throws キーワードを使用して宣言され、その後に例外タイプのリストが続きます。これは、メソッドが実行中にこれらの例外をスローする可能性があることを示しています。例えば:
public void methodName() throws IOException, IllegalArgumentException {}
メソッドのオーバーロード: | Java はメソッドのオーバーロードをサポートしています。これにより、名前は同じでパラメーター リストが異なる複数のメソッドを定義できます。オーバーロードされたメソッドには、パラメーターの数、型、順序に基づいた一意のシグネチャがあります。戻り値の型だけでは、オーバーロードされたメソッドを区別するのに十分ではありません。例えば:
public void methodName(int param1) {} public void methodName(int param1, int param2) {} public void methodName(String param1) {}
戻り値の型: | メソッドのオーバーロードを考慮する場合、戻り値の型はメソッド シグネチャの一部ではありません。ただし、2 つのメソッドの名前とパラメータ リストが同じでも、戻り値の型が異なる場合は、コンパイル エラーが発生します。 Java では、戻り値の型のみに基づいたメソッドのオーバーロードは許可されていません。
ヴァラーグ: | Java は、メソッド パラメータで可変長引数 (varargs とも呼ばれます) をサポートしています。 varargs パラメーターを使用すると、同じ型の可変数の引数をメソッドに渡すことができます。 varargs パラメータは、パラメータ タイプの後に省略記号 (...) で示されます。例えば:
public void methodName(int... numbers) {}
varargs を使用すると、ゼロを含む任意の数の int 引数を指定してメソッドを呼び出すことができます。
メソッドの呼び出しを操作したり、インターフェイスを実装したり、クラスを拡張したり、リフレクションを使用したりする場合には、メソッド シグネチャを理解することが不可欠です。これにより、正しいメソッドが確実に呼び出され、Java プログラム内のメソッドを識別する一貫した明確な方法が提供されます。