一道scjp的考题 结果是0因为private static int a;没有指定值,默认是0modify(a)是值传递,调用并不会改变static int a的值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void modify(int a) { a++;}改变的只是modify传递进来的a,而不是类变量a的值。也就是说a++,它加的只是方法级的变量a,而不是类级变量a。java中如果在方法中有与类变量同名的变量名,则以方法内的变量名会屏蔽掉同名的类变量名。所以System.out.println(a) ;打印出来的永远是0。 这是最基本的问题。JAVA方法中的参数:基本类型是值传递,类是地址传递,STRING例外。 not a reference parameter, return the static int will make it ok. 关于字符串不可修改的问题 PrintStream.println() 将文件写为空! 怎样解析XML速度更快 请问怎么获取本局域网的子网掩码呀? 如何把图片存到数据库中 问 一个字符串查找匹配问题? 刚学,一个编译问题,请各位帮帮我! 大家用啥来建模? 现实的渺茫---未来是什么? ORACLE包的问题!晕了!!!! 我到底是错在哪里?
{
a++;
}
改变的只是modify传递进来的a,而不是类变量a的值。也就是说a++,它加的只是方法级的变量a,而不是类级变量a。java中如果在方法中有与类变量同名的变量名,则以方法内的变量名会屏蔽掉同名的类变量名。
所以System.out.println(a) ;打印出来的永远是0。
JAVA方法中的参数:基本类型是值传递,类是地址传递,STRING例外。