- public class Pass {
- static int j= 20;
- public static void main(String argv[]){
- int i = 10;
-
- Pass p = new Pass ();
- p.amethod(i);
- System.out.println(i);
- System.out.println(j);
- }
- public void amethod(int x){
- x = x*2;
- j= j*2;
- }
- }
复制代码 i是局部变量,当你传入amethod以后,i就已经将数值交给了x,后面的x=x*2都是x在参加运算,而你要打印i的值,所以只能打出你当初初始化i时所赋的值10。
j是全局变量,在pass类中全局有效,所以你在amethod中对j进行了修改,而后打印j仍然是参与运算后的值为40 |