一道scjp的考题

fazhu 2002-04-14 11:17:34
大家说说这道题的答案,要说明为什么(请不要通过编译得到答案).
public class X {
private static int a ;
public static void main(String[] args) {
modify(a) ;
System.out.println(a) ;
}
public static void modify(int a) {
a++;
}
}
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordkee 2002-04-14
  • 打赏
  • 举报
回复
not a reference parameter, return the static int will make it ok.
salute 2002-04-14
  • 打赏
  • 举报
回复
这是最基本的问题。
JAVA方法中的参数:基本类型是值传递,类是地址传递,STRING例外。
GJA106 2002-04-14
  • 打赏
  • 举报
回复
public static void modify(int a)
{
a++;
}
改变的只是modify传递进来的a,而不是类变量a的值。也就是说a++,它加的只是方法级的变量a,而不是类级变量a。java中如果在方法中有与类变量同名的变量名,则以方法内的变量名会屏蔽掉同名的类变量名。
所以System.out.println(a) ;打印出来的永远是0。
kkhui 2002-04-14
  • 打赏
  • 举报
回复
结果是0
因为
private static int a;
没有指定值,默认是0
modify(a)
是值传递,调用并不会改变static int a的值
wes109 2002-04-14
  • 打赏
  • 举报
回复
0

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧