シグネチャについて:簡単に説明すると
シグネチャとは、メソッドの名前、およびそのメソッドに対する
引数の数と型により構成されています。
つまり、次の3つを組み合わせたものをシグネチャと呼びます。
シグネチャについて:もっと詳しく
分かりにくいと思うので、具体的な例で説明します。
以下はシグネチャが同じメソッドです。(同一のクラス内に同時に宣言することはできません。)
public static void method1( int a ){ /* 処理 */ }//(1)
public static void method1( int num ){ /* 処理 */ }//(2)
public static int method1( int b ){ /* 処理 */ }//(3)
static void method1( int x ){ /* 処理 */ }//(4)
void method1( int y ){ /* 処理 */ }//(5)
private void method1( int c ){ /* 処理 */ }//(6)
メソッド名と引数の数、引数の型がいずれも同じなのが分かるかと思います。
メソッド名 : method1
引数の数 : 1つ
引数の型 : int型
これらの3つが同じ場合、「シグネチャが同じ」と表現されます。
Java言語ではシグネチャが同じメソッドを同じクラス内に宣言することが禁止されています。
実際のコードで試してみましょう。
ここでは上記の例の中から(1)と(5)を同一のクラス内で宣言してみます。
class Test{
public static void main( String args[ ] ){
System.out.println( "TEST" );
}
public static void method1( int a ){ }//(1)
void method1( int y ){ }//(5)
}
>javac Test.java
Test.java:6: method1(int)は Test で定義されています。
void method1( int y ){ }// (5)
^
エラー 1 個
このコンパイルエラーの意味は、同じシグネチャのメソッドが既に宣言されていますよ、ということです。
つまり、
メソッド名 : method1
引数の数 : 1つ
引数の型 : int型
というシグネチャのメソッドは(1)ですでに宣言されているので、(5)のおなじシグネチャのメソッドは宣言できません、
ということです。
これとは逆にシグネチャさえ異なれば、同じ名前のメソッドであっても一つのクラス内に複数宣言することができます。
このように同名でシグネチャの異なるメソッドを複数宣言することは
オーバーロード
といいます。
実際に試してみましょう。
class Test{
public static void main( String args[ ] ){
System.out.println( "TEST" );
}
public static void method1( int a ){ }
public static void method1( double d ){ }
}
>javac Test.java
>java Test
TEST
正常にコンパイル、実行できてますね。
ちなみに、戻り値はシグネチャに含まれていません。
そのため、戻り値が異なってもシグネチャが同じメソッドを宣言するとコンパイルエラーとなります。
上記の例では(3)のケースに該当します。
念のため試してみましょう。
class Test{
public static void main( String args[ ] ){
System.out.println( "TEST" );
}
public static void method1( int a ){ }//(1)
public static int method1( int b ){ }//(3)
}
>javac Test.java
Test.java:6: method1(int)は Test で定義されています。
public static int method1( int b ){ }// (3)
^
エラー 1 個
また、staticか非staticであるかもシグネチャとは関係ありません。
これも含めていろいろ自分で試してみて下さいね!
|
SJC-P対策問題集
Java認定試験( SJC-P/310-035 )対策のメルマガ問題集も好評発刊中!
もちろん無料です。
またバックナンバーも見やすくしてオンライン問題集として随時アップしていきます。
受験しない人でも Java の基礎知識を学習するのに最適です。
SJC-P対策参考書
現在、Java認定試験(SJC-P/310-035)対策の参考書は本当にたくさん出版されてます。
ここでは、その中から厳選した本当に役立つ参考書を紹介します。
無駄な出費を抑えるためにも、ぜひ参考にして下さい。
SJC-P対策Java用語集
Java認定試験( SJC-P/310-035 )合格のために必要な Java の用語を集めました。
試験対策にはもちろん、試験以外で Java を学習する際にもご活用下さい。
更新履歴
このサイトの最新情報はここで確認できます。
また、今までこのサイトがどのような軌跡を辿ってきたのかも知ることができます。
Javaを始める人へ
これからJavaを始めようとしているあなたへ。
Javaの勉強を始めるにはどうしたら良いのかを説明しています。
また、初心者に役立つ情報を提供していきます。
Java認定資格の概要
Java認定資格にはどのようなものがあるのか。
資格取得のためにはどのような知識が必要なのか。
その他、資格を取得することのメリットなど、Java認定資格の概要を説明します。
LINK
Javaの勉強に役立つリンク。
その他のプログラミングに関するリンク。
ソフトウェアに関するリンクなど、管理人の主観で集めたリンク集です。
相互リンクも常時募集中!
詳細は以下のページで確認して下さい。
このサイトについて
このサイト「1発合格★Java認定試験!」についての説明です。
サイトで掲載しているソースコードや問題や免責事項などについて説明しています。
初めての人は一度のぞいてみて下さい。
ちょっとひと息
仕事や試験勉強に疲れたら、ここでちょっと一息つきませんか。
一生懸命に打ち込むのも良いけど、たまには何も考えずにゆっくり休むのも良いものです。
たまにはのんびり脳みそをリフレッシュしましょう。
|