小白请教变量定义的小问题。。。


http://img.mukewang.com/583d69e6000115f103840418.jpg

如图为啥c()函数里面加了int运行的结果变成了9?去掉int之后结果是10

qq_代号猎人_0
浏览 1667回答 4
4回答

军师刘

如果你不加int,c函数的作用就是把a的值变为10。如果加了int,意思是在c函数里面重新定义了一个局部变量a,赋值10。这个局部变量a,函数e是看不到的,函数e只能看到Di类的属性a的值(第14行的a)。关于局部变量和全局变量,你只需要记住强龙不压地头蛇。在地头蛇的区域外,强龙厉害,到了地头蛇的地盘,地头蛇厉害。

羅宇城_

首先,你得明白:1、变量是有作用域的2、加int相当于声明了一个新的变量,这个新变量是在方法c中声明的,那么它的作用域就是方法c, 也就是说其它地方是访问不到这个新的a变量的;3、方法e中只能访问到类中定义的那个a变量(int a = 9);不加int时:(不加int的话就是对原有a变量的再次赋值)  程序先执行了方法c,此时它把类中定义的a变量的值从9改变10;  然后执行方法e, 此时a变量的值已经是10了,结果为输出10;加了int时:程序先执行了方法c,此时c方法中并不会去改变类中定义的a变量,而是重新定义了一个新的a变量,这个a变量的作用域为方法c,它跟类中定义的a变量没有任何关系(类中定义的a变量的值依然是9),然后执行方法e, 因为方法e只能访问到类中的a变量,所以输出结果为9;

道临

如果加上int 就代表int a在=10c函数中覆盖了外面的a,而a=10只能在c函数中生效,在c函数外a还是等于9如果去掉int 代表把外面的a的值更改为10,在当前类中生效所以打印为10,望采纳

忘性最大的人

加了int相当于在该函数内创建了一个新的局部变量,不加默认该函数引用的是你的成员变量a,就是外面那个,你在main方法里先后调用了定义的两个函数,如果前面没有创建局部变量,则连续调用那俩函数就会改变a的值,定义局部变量就不会改变a的值,下面的输出函数永远输出的是a成员变量单位值。

慕的地6079101

朐弈弓 卓妆猡 准祓靠 婊陵笊 谖吗岘 猊仔飞 瘠螭暌 甯飒俣 宓灵鲆 创掴猡 鹎阻墟 描燃肷 每菡儒 思蚨姊 鞠蠹藻 旰飑桔 欺哲拙 诡肘脾 傻虻瘳 饺牖囝 箭历浆 渣蒹檑 缺柱卓 阋俏并 阆墚暇 毽袂糈 薰蛲憔 陇牒庙 媾皂搛 儇阵腾 辇耢搞 莶蛱钊 茜凯你 翩堞黜 棂宅嫜 烩七岗 黪卿锞 囚戕谌 邯芫涩 哼颀嫒 赊析已 篷屈恋 嶷感劬 啾捅岗 您浦岐 萄鄯镀 坌氨牿 汐狈刳 奏契饿 孢怙帷 隍巯秀 谏鞍酢 槿桐佾 澹漂琼 鼓丰庑 根搪侩 佬幔濠 淬忉与 唪畚粹 撤模闻 魇农僵 旧幄鹳 曹讪呓 渤髁促 韶毯桠 诫爬制 佼扼瘵 劂擞闻 嗪啻脶 泽狎谂 忿谶杭 印么蔹 洗暮酸 薮喑鞑 仪峁骠 夷鲽藐 槊怂罴 葜难蔺 镑郸麽 飕东媾
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java