一尘不染

如果我做对象a = b,然后b.change()也会改变吗?

java

如果我有

public class Bike{
    private int speed;

    public void setSpeed(int speed){
        this.speed=speed;
    }

   public int getSpeed(){
        return speed;
    }

然后,如果我创建Bike a=new Bike(); 并执行

Bike b=a;
b.setSpeed(12);

自行车的速度也会a改变吗?如果没有,那有什么办法吗?


阅读 235

收藏
2020-12-03

共1个答案

一尘不染

是的,它将改变。Java Assignment操作仅创建对该对象的新 引用 。换句话说写类似

Object objectA = objectB

不会 复制对象中的所有值。objectA和objectB都指向该类的相同 实例

如果要复制对象的所有值,则应查看克隆

2020-12-03