5 回答
TA贡献51条经验 获得超16个赞
1 a值是你 在main()函数中的 int a=1;的值,所以等于1,如果你输出 System.out.println("a 值:"+add(a)); 就是2。
2 声明一个值为k 的Koo对象并将 add 方法中的koo赋值给k,所以指向的是同一地址,所以koo.a 值就是2。
不明白就看看这个:
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。
TA贡献88条经验 获得超43个赞
这是值传递和引用传递的区别,先解释这两个概念。
值传递是指一些基本数据类型在作为方法参数传递时,是复制一个副本传递过去,传递过去的是一个新变量了,跟原来的没有任何关联了,改变其中一个的值另一个不会受影响。
引用传递是指把这个变量的内存地址传过去,也就是说传过去的变量和当前变量指向的是同一个变量,改变其中一个的值两个都变了。
int类型的数据是值传递,类型数据Koo是属于引用传递。如若解惑,望采纳
TA贡献2条经验 获得超0个赞
a++ 调用后执行加1 ++a执行加1后调用 Koo koo = new Koo() 和Koo k = koo意思一样 前者构造一个Koo对象 后者对象赋值
添加回答
举报