シグネチャー
日本語 | 署名 |
英語 | signature |
ふりがな | しぐねちゃー、しぐねいちゃー、しぐにちゃー |
フリガナ | シグネチャー、シグネイチャー、シグニチャー |
メソッドの、メソッド名、引数、戻り値の型、throwsによる例外指定の箇所。
つまりメソッドの実装({}で囲まれた箇所)を除いた部分。
メソッドの「宣言」とも言う。
ただし厳密には、シグネチャーはメソッド名と引数のみを指す。
シグネチャーは、メソッドを呼び出すために必要な情報で構成されている。
メソッド名と引数がシグネチャーに書かれているからこそメソッドを呼び出すことができ、戻り値の型が書かれているからこそ戻り値を受け取ることができる。
シグネチャーはメソッドの「名札」といったところである。
「シグネチャー」という用語はオブジェクト指向用語である。
スーパークラスのメソッドをオーバーライドするメソッドは、オーバーライドされるメソッドと同じシグネチャーにしなければならない。
また、インタフェースのメソッドを実装するメソッドは、実装されるメソッドと同じシグネチャーにしなければならない。
このインタフェースのメソッドや、abstractクラスのabstractメソッドは、シグネチャーのみであり、実装を持たないメソッドである。
このように、シグネチャーはオブジェクト指向の、特にポリモーフィズムの部分に深く関わっている。
厳密には、シグネチャーはメソッド名と引数のみが該当する。
つまり、戻り値の型や例外指定等はシグネチャーに含まない。
ただ、オブジェクト指向用語としての「シグネチャー」は定義が曖昧なため、場合によっては戻り値の型を含んだりメソッドの宣言そのものだったりする。それを踏まえて文脈から読み解くこと。
一般には、シグネチャーには「署名」という意味もある。
電子メール文末の署名を「シグネチャー」と言う。
ちなみに英語で「signature」と書くが、このカタカナ語訳には「シグネチャー」「シグネチャ」「シグネイチャー」「シグネイチャ」「シグニチャー」「シグニチャ」などがある。本辞書では、Java言語仕様の日本語訳で「シグネチャ」が使われており、検索で見つけやすいよう「ー」を付けて「シグネチャー」を採用している。
つまりメソッドの実装({}で囲まれた箇所)を除いた部分。
メソッドの「宣言」とも言う。
ただし厳密には、シグネチャーはメソッド名と引数のみを指す。
シグネチャーは、メソッドを呼び出すために必要な情報で構成されている。
メソッド名と引数がシグネチャーに書かれているからこそメソッドを呼び出すことができ、戻り値の型が書かれているからこそ戻り値を受け取ることができる。
シグネチャーはメソッドの「名札」といったところである。
「シグネチャー」という用語はオブジェクト指向用語である。
スーパークラスのメソッドをオーバーライドするメソッドは、オーバーライドされるメソッドと同じシグネチャーにしなければならない。
また、インタフェースのメソッドを実装するメソッドは、実装されるメソッドと同じシグネチャーにしなければならない。
このインタフェースのメソッドや、abstractクラスのabstractメソッドは、シグネチャーのみであり、実装を持たないメソッドである。
このように、シグネチャーはオブジェクト指向の、特にポリモーフィズムの部分に深く関わっている。
厳密には、シグネチャーはメソッド名と引数のみが該当する。
つまり、戻り値の型や例外指定等はシグネチャーに含まない。
ただ、オブジェクト指向用語としての「シグネチャー」は定義が曖昧なため、場合によっては戻り値の型を含んだりメソッドの宣言そのものだったりする。それを踏まえて文脈から読み解くこと。
一般には、シグネチャーには「署名」という意味もある。
電子メール文末の署名を「シグネチャー」と言う。
ちなみに英語で「signature」と書くが、このカタカナ語訳には「シグネチャー」「シグネチャ」「シグネイチャー」「シグネイチャ」「シグニチャー」「シグニチャ」などがある。本辞書では、Java言語仕様の日本語訳で「シグネチャ」が使われており、検索で見つけやすいよう「ー」を付けて「シグネチャー」を採用している。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
// ↓ここから
public int minus( int i )
// ↑ここまでがシグネチャーです。
{
return -i;
}
// ただし、厳密なことを言うと、メソッド名と引数のみが
// シグネチャーなので、以下の範囲ということになります。
// → この範囲 ←
public int minus2( int i )
// ↑ ↑
// メソッド名 引数
{
return -i;
}
public static void main( String[] args )
{
// 自分のクラスのインスタンスを作ります。
Sample sample = new Sample();
// minus()メソッドを呼び出します。
// この呼び出す際に必要な情報がシグネチャーです。
// メソッド名
// ↓ 引数
// ↓ ↓
int i = sample.minus( 100 );
System.out.println( i );
// -100
}
}
public class Sample
{
// ↓ここから
public int minus( int i )
// ↑ここまでがシグネチャーです。
{
return -i;
}
// ただし、厳密なことを言うと、メソッド名と引数のみが
// シグネチャーなので、以下の範囲ということになります。
// → この範囲 ←
public int minus2( int i )
// ↑ ↑
// メソッド名 引数
{
return -i;
}
public static void main( String[] args )
{
// 自分のクラスのインスタンスを作ります。
Sample sample = new Sample();
// minus()メソッドを呼び出します。
// この呼び出す際に必要な情報がシグネチャーです。
// メソッド名
// ↓ 引数
// ↓ ↓
int i = sample.minus( 100 );
System.out.println( i );
// -100
}
}
// Sample.java public class Sample { // ↓ここから public int minus( int i ) // ↑ここまでがシグネチャーです。 { return -i; } // ただし、厳密なことを言うと、メソッド名と引数のみが // シグネチャーなので、以下の範囲ということになります。 // → この範囲 ← public int minus2( int i ) // ↑ ↑ // メソッド名 引数 { return -i; } public static void main( String[] args ) { // 自分のクラスのインスタンスを作ります。 Sample sample = new Sample(); // minus()メソッドを呼び出します。 // この呼び出す際に必要な情報がシグネチャーです。 // メソッド名 // ↓ 引数 // ↓ ↓ int i = sample.minus( 100 ); System.out.println( i ); // -100 } }