首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA小初学者有关问题

2012-03-28 
JAVA小菜鸟问题请问一下这段程序为什么I10,J40..谢谢。。public class t5 {static int j20public static

JAVA小菜鸟问题
请问一下这段程序为什么I=10,J=40..谢谢。。
public class t5 {
static int j=20;
public static void main(String[] args) {
int i=10;

t5 t=new t5();
t.method(i);
System.out.println(i);
System.out.println(j);


}
public void method(int x)
{
x=x*2;
j=j*2;
}

}


[解决办法]
首先,java中传递的是值参数,所有I的值不变。
j = j*2 ,因为J=20,所以J=40;
[解决办法]
我也不怎么懂。。

[解决办法]
1. x = x * 2 , 方法调用以后,x是改变了,可是它得生命周期结束了,所以没有改变 i 的值。

2. 因为 j 是静态变量,对每个类都一样。调用对象得方法得到j = j * 2;故而 j = 40;

[解决办法]
t.method(i); 
只是把i的值传给参数x,方法里面的x=x*2,改变的只是局部变量x的值,此时在这个method()方法加一个打印语句
System.out.println(x);会输出你想要的20,i 的值是没有改变的!
由于j 被声明为静态变量,是存在内存的数据区里,初始化为20,调用method()方法时,执行j=j*2;会修改j的值。
[解决办法]
呵呵,学习了!
[解决办法]

嗯,可能楼主还得多了解一下类变量,局部变量之间的区别哦...

[解决办法]
函数参数是基本类型时是传值,是对象类型时是传该对象的引用
[解决办法]
看一贴,了解学习相当多啊

热点排行
Bad Request.