看下下面代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Tank t1 = new Tank();
changeTank(t1);
Log.i("t1",t1.level+""); //输出的是100 赋值操作的是一个对象的引用。所以修改tank的同时也改变了t1
String str1 = "233";
changeStr(str1);
Log.i("str1",str1); //输出的是233 ,基本数据类型,是复制值赋值
}
private void changeTank(Tank tank){
tank.level = 100;
}
private void changeStr(String str){
str = "hl";
}
}
注意这个对象赋值陷阱,也叫别名问题
网友评论