美文网首页
《第二行代码》 对象的赋值,会改变引用对象

《第二行代码》 对象的赋值,会改变引用对象

作者: 你的益达233 | 来源:发表于2021-10-09 10:12 被阅读0次

    看下下面代码:

    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";
        }
    
    }
    

    注意这个对象赋值陷阱,也叫别名问题

    相关文章

      网友评论

          本文标题:《第二行代码》 对象的赋值,会改变引用对象

          本文链接:https://www.haomeiwen.com/subject/arqqoltx.html