有void,不是无返回值吗?

http://img.mukewang.com/59252e670001571708530473.jpg

最后一行的输出  调用的HelloWorld.hobby为什么不是”imooc“,而是”爱慕课“,既然无返回值,那么不应该是原值吗

jcttt
浏览 1705回答 3
3回答

AurevoirXavier

首先 hobby 是个静态变量,该类对象都可以访问。然后 hello 这个对象修改了该变量,自然结果就是爱慕课了。至于你说的 void 它是一个返回类型,但是不影响以上面这个操作。我打个比方,变量是一杯水,对象是你本人,叫你去喝水的人是方法调用者,你喝了这杯水,这杯水的值就改变了,如果是 String 返回类型,你可以 return,就像是你喝完以后告诉那个人你喝完了,如果是 Int 返回类型你可以告诉他你喝了多少毫升水之类的,没有返回值的话就是你把水喝完了,啥也没告诉他。什么返回类型并不影响你喝水这个动作,水被改变是必然。另外这个方法是个 main 方法,你可以上网搜搜有关他的知识补充一下。java -c 命令查看 class 文件可以帮助你更详细看到过程。

谜之米

首先void 无返回值 是针对调用方法而言。 而且你这和void 没有一点关系,hobby为static 所以hobby为HelloWorld的类变量无论通过那种方式都能完成赋值,

望远

这里是因为hobby是静态变量,多个实例的hobby使用同一个内存空间,只要通过一个实例(或者类名)改变了它的值,那么,往后所有的取值都将是新值,注释已经写得很明白了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java