私はフォーラムを読み、いくつかのリンクを調べたところ、Java はすべて値渡しであることがわかりました。参照がどのように機能するかは理解していますが、プリミティブがどのように機能するかは理解していません。プリミティブでもオブジェクトでも、値渡しは同じように機能すると言われています。
サンプルプログラムを作成しました
public class BirthDate {
int lear;
int year; // Instance variable
public static void main(String [] args) {
BirthDate bd = new BirthDate();
bd.lear=200;
bd.year=300;
int a=56;
bd.showYear(a,bd);
System.out.println(a);
System.out.println(bd.lear);
}
public void showYear(int a, BirthDate bd) {
a=59;
System.out.println(bd.lear);
bd.lear=400;
System.out.println(bd.lear);
System.out.println(a);
}
}
上記のプログラムの出力は 200 400 59 56 400 です
ここで、プリミティブと参照の両方の場合にビットが渡された場合、showYear メソッドの参照値の変更が元の bd オブジェクトの変更 (値が 400 に変更) を反映し、プリミティブ データ型 iea ではない理由
誰でも提案できますか?