4 回答
TA贡献1条经验 获得超2个赞
如果你不加int,c函数的作用就是把a的值变为10。如果加了int,意思是在c函数里面重新定义了一个局部变量a,赋值10。
这个局部变量a,函数e是看不到的,函数e只能看到Di类的属性a的值(第14行的a)。关于局部变量和全局变量,你只需要记住强龙不压地头蛇。在地头蛇的区域外,强龙厉害,到了地头蛇的地盘,地头蛇厉害。
TA贡献4条经验 获得超2个赞
首先,你得明白:
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;
TA贡献80条经验 获得超126个赞
如果加上int 就代表int a在=10c函数中覆盖了外面的a,而a=10只能在c函数中生效,在c函数外a还是等于9
如果去掉int 代表把外面的a的值更改为10,在当前类中生效所以打印为10,望采纳
TA贡献118条经验 获得超37个赞
TA贡献3593条经验 获得超0个赞
添加回答
举报