请问一下这段程序为什么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;
}}
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;
}}
解决方案 »
- 如何做Swing中添加背景图片!
- 求救:Swing中setLayout(null)不能显示组件
- 一个java applet的程序.怎么找到APPLET文件路径
- java基础题,难住了?
- 怎么把数据库里信息动态放到JTable中???
- 我的程序怎么不能运行呀,求救!
- 求教高手rose对java源程序逆向工程的问题!
- 谁能告诉我visibroker for java 4.5的序列号。4.0也行。谢谢!
- ArrayList实现了List接口,为什么没有重写其iterator();抽象方法???为什么
- jtable菜鸟求助
- 请问如何在文本区里选定文本内容改变字体或者颜色!类似WORD里的功能!
- 关于时间转换
j = j*2 ,因为J=20,所以J=40;
只是把i的值传给参数x,方法里面的x=x*2,改变的只是局部变量x的值,此时在这个method()方法加一个打印语句
System.out.println(x);会输出你想要的20,i 的值是没有改变的!
由于j 被声明为静态变量,是存在内存的数据区里,初始化为20,调用method()方法时,执行j=j*2;会修改j的值。
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 i) // 这里也改成i 或者j
{
i=i*2;
j=j*2;
} }