黑马程序员技术交流社区

标题: 大家看看运行的结果 [打印本页]

作者: xueshuyang    时间: 2015-11-16 23:25
标题: 大家看看运行的结果
class Demo01 {
        public static void main(String[] args) {
                int a = 10;
                int b = 20;
                System.out.println("a="+a+"b="+b);
                change (a,b);
                System.out.println("a="+a+"b="+b); //猜猜这行输出的效果
        }
        public static void change(int a,int b) {
                a = b;
                b+=a;
                System.out.println("a="+a+"b="+b);
        }
}
作者: HavaDream    时间: 2015-11-16 23:35
a=10 b=20
a=20 b=40
作者: jlq    时间: 2015-11-16 23:45
looklook  zhichi yixia
作者: wei_john    时间: 2015-11-16 23:48
考察实参与形参
作者: 黑夜中那颗星    时间: 2015-11-17 00:36
整个输出结果是:
a=10b=20
a=20b=40
a=10b=20
对吧
作者: 流水落花    时间: 2015-11-17 00:59
我是来看答案的
作者: Java小妖    时间: 2015-11-17 08:48
尝试中……
作者: xiao15779706    时间: 2015-11-17 08:51
本帖最后由 xiao15779706 于 2015-11-17 09:03 编辑
黑夜中那颗星 发表于 2015-11-17 00:36
整个输出结果是:
a=10b=20
a=20b=40

为什么 第三个也是10.20  是不是因为数据存放在方法区中  而第二个change()方法对其操作并不在方法区中操作的  在栈中操作的??

作者: ln0491    时间: 2015-11-17 11:31
10,20.。。。。。。。。。。。。。
作者: 舞动炫龙    时间: 2015-11-17 11:42
a=10b=20
a=20b=40
a=10b=20
作者: 黑夜中那颗星    时间: 2015-11-17 11:46
xiao15779706 发表于 2015-11-17 08:51
为什么 第三个也是10.20  是不是因为数据存放在方法区中  而第二个change()方法对其操作并不在方法区中操 ...

   public static void main(String[] args) {
                int a = 10;
                int b = 20;
                System.out.println("a="+a+"b="+b);
                change (a,b);   //这里只是把a和b的值传递给这个方法
                System.out.println("a="+a+"b="+b);
        }
        public static void change(int a,int b) {  
                a = b;  //这里改变的是本方法中的局部变量a,并不改变上面的
                b+=a; //这里也是一样
                System.out.println("a="+a+"b="+b);
        }
作者: xiao15779706    时间: 2015-11-17 11:53
黑夜中那颗星 发表于 2015-11-17 11:46
public static void main(String[] args) {
                int a = 10;
                int b = 20 ...

我明白了,也就是说change方法中的a,b只是接收到的参数,和主函数中的a,b不一样,change中的a,b作用域也就仅限于方法中是吧  谢谢你

作者: JYcainiao    时间: 2015-11-17 22:13
a=10 b=20
a=20 b=40
a=10 b=20
基本类型的数据传递,不会影响实际参数的值
引用数据类型的传递,会影响实际参数的值,String例外  可以当作基本数据类型去看
作者: 33期1113刘传政    时间: 2015-11-17 22:19

a=10b=20
a=20b=40
a=10b=20




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