看下下面代碼:
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";
}
}
注意這個對象賦值陷阱,也叫別名問題