●引数(値渡しと参照渡し)
メソッドの呼び出しでは、呼び出す際に指定した実引数がメソッドの仮引数に渡されます、
プリミティブ型の引数と参照型の引数では、渡される値の扱いに違いがある

○呼び出し元のクラス
class MainClass{

・・・
int a = 10;
DataClass obj = new DataClass();
obj.a =100;
・・・
WorkerClass objW = new WorkerClass();
objW.countup(a, obj);
・・・
}
○メソッドのあるクラス
class WorkerClass{
void countup(int a, DataClass obj){
・・・
}
}
○データのあるクラス
class DataClass{
int a;
・・・
}

*「呼び出し元クラス」のプリミティブ型変数[a]の値10が
「メソッドのあるクラス」に変数[a]の値10がコピーされる。
*「呼び出し元クラス」「メソッドのあるクラス」で
同じオブジェクトを参照するため,「データのあるクラス」での
参照型変数「a」の値は100

引数がプリミティブ型の場合
プリミティブ型の値は整数や実数の値そのものですから、「10」ならば「10」
という値がメソッドの仮変数にコピーされます
引数が参照型の場合
参照型の値はオブジェクトを参照するための情報ですから、
オブジェクトを特定するための値がメソッドの仮変数にコピーされます
この値を使ってメソッドでもオブジェクトを参照することができる。


改訂第2版 Java言語プログラミングレッスン (上)/結城 浩

¥2,520
Amazon.co.jp

改訂第2版 Java言語プログラミングレッスン (下)/結城 浩

¥2,520
Amazon.co.jp