请问为啥两个参数不一样就导致结果不同,参数不就用来传递个数据吗?

不理解为啥两个运行结果差距这么大,这个change(String str1)和change(String str)都是来传递方法中的值得,为什么还会不一样呢

img

img

如果change方法内部的str,和方法参数同名,和类成员属性也同名,那么局部优先,相当于他修改的是方法参数中的str,并不是最上面类属性的str,所以这里的change方法不生效。
如果change方法内部的str,和方法参数不同名,但和类成员属性同名,相当于他修改的是最顶部的类属性的str,所以这里的change方法生效。

你的str是个全局变量
如果形参名叫str1,那么修改str修改的是全局变量
如果形参也叫str,那么修改str修改的是形参
你需要复习同名变量的作用域相关的知识了