class Payload {
private int weight;
public Payload (int w) { weight = w; }
public void setWeight(int w) { weight = w; }
public String toString() { return Integer.toString(weight); }
}
public class Main{
static void changePayload(Payload p) {
p = new Payload(420);
}
public static void main(String[] args) {
Payload p = new Payload(200);
p.setWeight(1024);
System.out.println(p);
changePayload(p);
System.out.println("p is " + p);
}
OUT:1024
为什么p还是main方法中原来那个p对象,没有受changePayload(p)中的P影响,输出420呢?
如果两个p不是同一对象,把 p = new Payload(420);
改为 p.setWeight(420);
输出就是420;
这不说明了在new之前p是同一个对象吗,那么在main方法中输出时候p不应该也变成了重新new之后的那个p吗?不明白