在这段代码中
为什么打印 >> 0 8 而不是 >> 5 8 。该方法doIt()
更改了已分配的 Person p 的数量,但 int x 已分配并且在 中没有更改doIt()
。谁能给我一个理论上的解释?我试图了解它是如何工作的。谢谢。
class Person{
int number=0;
}
class Student extends Person
{
int studentNumber;
}
public class Prog{
public void doIt(int x, Person p)
{
x=5;
p.number=8;
}
public static void main(String[] args) {
Prog p = new Prog();
p.test();
}
public void test()
{
int x=0;
Person p = new Person();
doIt(x,p);
System.out.println(x);
System.out.println(p.number);
}
}