メソッドの引数

「メソッドの引数」の編集履歴(バックアップ)一覧はこちら

メソッドの引数」(2008/01/14 (月) 22:08:25) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*[[java]] **メソッドの引数 - Javaでは引数に値を渡す場合、常に&bold(){値渡し} public void setNumber(int number) { number = 100; } ※このメソッドで、引数で渡されたnumberを、100に置き換えようとしているが、変更されない。 int number = 10; obj.setNumber(number); System.out.println(number); // 100ではなく10が表示される。 ※これは、呼び出し元からnumberという変数を渡すわけではなく、numberに格納されている10という値が setNumber()メソッドの引数に定義されているnumberにcopyされているため。 ※呼び出しもとのnumberとメソッドの引数リストのnumberは別の変数であるため、setNumber()内で numberを変更しても呼び出し元の変数に影響はない。 - 参照型(&bold(){配列型やクラス型})を使うと、メソッドにはインスタンスを参照する値を渡すため、変更することが可能 public void setArray(int [] array) { for(int i=0; i<array.length; i++) array[i] = 100; } int[] array = {1,2,3,4,5} obj.setArray(array); ※array[]の各要素はすべて100に置き換わる。 **メソッドのオーバーロード - System.out.println()を呼び出すと、メソッド名は同じだが引数を渡さなかったり、異なる型の引数を渡している。 - System.out.println()を呼び出すと、Systemクラスのoutというスタティックフィールドに格納されているオブジェクトのprintln()を呼び出す。 - outはPrintStream型であるので、println()はもともとPrintStreamクラスで定義されているメソッド。 - PrintStreamではprintln()は数多く定義されている。(JDKのAPIドキュメント参照) void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(long x) void println(Object x) void println(String x) - 同じ名前で引数の数や型の異なるメソッドを定義することを&bold(){メソッドのオーバーロード}という。 - オーバーロードにより引数の異なるメソッドを同じ名前で定義しておくと、コンパイラはそのメソッドの宣言と、メソッドの呼び出しで渡された引数を照合し、引数の型と数が一致するメソッドを選択してくれる。(&bold(){オーバーロードの解決}) ***sample public class OverloadTest { public static void main(String[] args) { int[] array = {1,2,3,4,5}; OverloadTestClass obj = new OverloadTestClass(); int ret = obj.sumNUmber(array); System.out.println("setNUmber(int[]) returns ----->" + ret); int ret = obj.sumNumber(1,2,3); System.out.println("setNumber(int,int,int) returns ----->" + ret); int ret = obj.sumNumber("1","1023"); System.out.println("setNUmber(String,Strin) returns ----->" + ret); } } class OverloadTestClass {
*[[java]] **メソッドの引数 - Javaでは引数に値を渡す場合、常に&bold(){値渡し} public void setNumber(int number) { number = 100; } ※このメソッドで、引数で渡されたnumberを、100に置き換えようとしているが、変更されない。 int number = 10; obj.setNumber(number); System.out.println(number); // 100ではなく10が表示される。 ※これは、呼び出し元からnumberという変数を渡すわけではなく、numberに格納されている10という値が setNumber()メソッドの引数に定義されているnumberにcopyされているため。 ※呼び出しもとのnumberとメソッドの引数リストのnumberは別の変数であるため、setNumber()内で numberを変更しても呼び出し元の変数に影響はない。 - 参照型(&bold(){配列型やクラス型})を使うと、メソッドにはインスタンスを参照する値を渡すため、変更することが可能 public void setArray(int [] array) { for(int i=0; i<array.length; i++) array[i] = 100; } int[] array = {1,2,3,4,5} obj.setArray(array); ※array[]の各要素はすべて100に置き換わる。 **メソッドのオーバーロード - System.out.println()を呼び出すと、メソッド名は同じだが引数を渡さなかったり、異なる型の引数を渡している。 - System.out.println()を呼び出すと、Systemクラスのoutというスタティックフィールドに格納されているオブジェクトのprintln()を呼び出す。 - outはPrintStream型であるので、println()はもともとPrintStreamクラスで定義されているメソッド。 - PrintStreamではprintln()は数多く定義されている。(JDKのAPIドキュメント参照) void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(long x) void println(Object x) void println(String x) - 同じ名前で引数の数や型の異なるメソッドを定義することを&bold(){メソッドのオーバーロード}という。 - オーバーロードにより引数の異なるメソッドを同じ名前で定義しておくと、コンパイラはそのメソッドの宣言と、メソッドの呼び出しで渡された引数を照合し、引数の型と数が一致するメソッドを選択してくれる。(&bold(){オーバーロードの解決}) ***sample public class OverloadTest { public static void main(String[] args) { int[] array = {1,2,3,4,5}; OverloadTestClass obj = new OverloadTestClass(); int ret = obj.sumNUmber(array); System.out.println("setNUmber(int[]) returns ----->" + ret); int ret = obj.sumNumber(1,2,3); System.out.println("setNumber(int,int,int) returns ----->" + ret); int ret = obj.sumNumber("1","1023"); System.out.println("setNUmber(String,Strin) returns ----->" + ret); } } class OverloadTestClass { public int sumNumber(int[] array) { int sum = 0; for(int i=0; i<array.length; i++) sum += array[i]; return sum; } public int sumNumber(int n1,int n2,int n3) { int[] array = {n1,n2,n3}; return sumNumber(array); } public int sumNumber(String s1,String s2) { int s1,s2; n1 = Integer.parseInt(s1); n2 = Integer.parseInt(s2); return sumNumber(n1,n2,0); } }

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。