黑马程序员技术交流社区

标题: 输出结果为什么是43? [打印本页]

作者: Robber    时间: 2016-1-19 19:39
标题: 输出结果为什么是43?
public class TestDemo3 {
        static int X = 3;
        public static <V> void main(String[] args) {
                new TestDemo3().go(X);
                System.out.print(X);
        }

        void go(int x) {
                System.out.print(++x);
        }
}
作者: 擎天柱    时间: 2016-1-19 23:14
传参问题。
作者: 酱油    时间: 2016-1-20 00:02
go方法里面是传递的值,并不能改变main方法里面的X的值、可以去看一下值传递和引用传递的区别,
作者: bestcaptain    时间: 2016-1-20 00:06
虚拟机启动之后从main函数入口进入后执行This.go(3),接收的参数是局部变量,++x=4,然后打印4,在运行下一句代码,打印本类中的X。没有换行所以结果是43。
作者: 梁志斌    时间: 2016-1-20 01:36
没换行~~
作者: hansnowqiang    时间: 2016-1-20 09:21
基本类型传值,引用类型传地址
作者: 我爱睡觉    时间: 2016-1-20 15:29
因为你 吧X的值给了x,x的值改变 X的值不改变  注意大小写
引用传递和值传递
作者: liuxiaoye    时间: 2016-1-20 21:44
java是值传递,所以X的值没有改变




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2