标题:求解答,函数调用问题,初学者
只看楼主
爱上不完美
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-1-9
结帖率:0
 问题点数:0 回复次数:6 
求解答,函数调用问题,初学者
class StringTest
{
    public static void change(int x,int y)
    {
        x=x+y;
        y=x-y;
        x=x-y;   
    }
    public static void main(String[] args)
    {
        int x=3;
        int y=4;
        change(x,y);         
        System.out.println("x="+x);
        System.out.println("y="+y);
    }
}
这个中对于有没有 change(x,y)   都不影响结果。为什么?
class StringTest
{
    public static void change(Point pt)
    {
        pt.x=pt.x+pt.y;
        pt.y=pt.x-pt.y;
        pt.x=pt.x-pt.y;
    }
    public static void main(String[] args)
    {
        Point pt=new Point();
        pt.x=3;
        pt.y=4;
        change(pt);
        System.out.println("x="+pt.x);
        System.out.println("y="+pt.y);
    }
}
class Point{int x, y;}
对于这个  没有change(pt);结果就受影响了。求详细简答。
搜索更多相关主题的帖子: void static public change 
2013-05-12 16:27
爱上不完美
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-1-9
得分:0 
2013-05-12 16:27
爱上不完美
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-1-9
得分:0 
2013-05-12 16:54
ren829
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:15
帖 子:255
专家分:1174
注 册:2006-3-11
得分:0 
造成这个问题可不是函数调用的问题哦,完全是变量作用域的问题。 第一段代码里,change里的 x y 和main方法里的x y完全就不是同一个东西。
而第二段代码,前后都是pt.x 和pt.y;
2013-05-12 22:42
爱上不完美
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-1-9
得分:0 
回复 4楼 ren829
依旧不是很懂、、、
2013-05-14 13:35
爱上不完美
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-1-9
得分:0 
回复 4楼 ren829
恩恩,明白了。我改了一下main里的X,Y。发现依旧可以运算,谢谢了
2013-05-14 13:43
hds812551918
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-14
得分:0 
前面的是实参和形参的问题  后一个因为是一个类的 所以相当于是实参
2013-05-14 23:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406895-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020462 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved