首页明星关于java的

关于java的

paiquba 12-18 21次浏览 0条评论

  那一段代码是演示代码,没有什么意思,次要是演示变量的感化域的问题

bar办法中生成f变量,那是部分的,它的感化域只在bar办法中,生命周期是整个bar办法的运行时间,也就是说:在bar运行时,在整个bar办法中能够时用f变量,除此之外不克不及利用

doStuff办法有一个g参数,也是部分的,它的生命周期和f一样,也是doStuff函数中

关于java的

但是因为java中对类实例的传递都是引用体例,因而:在进进 doStuff办法时,g变量引用了f变量的值,因而g。

  setName("Boo");将修改在bar中定义的f变量的引用值,因而f变量的name属性会被修改为:Boo;

g = new Foo();修改了g的引用实例,但是它的感化域时doStuff办法,因而对变量f的引用没有影响

我建议你在

bar的语句doStuff(f);前后增加打印f的name属性语句,看看它的变革;

在g。

  setName("Boo");前后增加打印f的name属性语句,看看它的变革;

在g = new Foo();前后增加打印f的name属性语句,看看它的变革;

你就大白了。

是函数参数传递,f是实参,g是形参,传递等价于f = new Foo();

Foo Fighters
java中使用new构造数组会不会调用类的默认构造函数 机动战士敢达Build Fighters有无第2部?
相关内容
发表评论

游客 回复需填写必要信息