您的位置:程序门 -> java -> j2se / 基础类



帮我分析一下这段代码的运行结果吧,谢谢


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


帮我分析一下这段代码的运行结果吧,谢谢[已结贴,结贴人:telephone518]
发表于:2007-01-12 12:08:55 楼主
public   class   test   {
    public   static   void   main(string[]   args)   {
int   a=99;

oper(a);
system.out.print(a);
}
    static   void     oper(int   b){
   
    b=b+100;
   
    }
}


运行   结果为什么是99?
发表于:2007-01-12 12:24:271楼 得分:0
a   的值根本就没有发生变化未什么不是99?
发表于:2007-01-12 12:39:472楼 得分:5
因为这个是int类型的值赋予,而非对象类型的引用赋予。
如果程序改为:

public   class   test   {
public   static   void   main(string[]   args)   {
int   a=99;
a=oper(a);
system.out.print(a);
}
static   int   oper(int   b){
b=b+100;
return   b;
}
}
则输出是199。

但如果a是对象类型的(例如string类型)则赋予的是一个引用。值会改变了。

发表于:2007-01-12 12:50:403楼 得分:0
你传的是值,有没有返回,对于a来说没什么影响啊
发表于:2007-01-12 13:28:084楼 得分:0
值传递的典型例子
发表于:2007-01-12 13:54:255楼 得分:0
谢谢诸位!你们都是热心人!
发表于:2007-01-12 14:04:086楼 得分:0
static   int   oper(int   b)因为这个方法没有返回任何值
发表于:2007-01-12 14:05:437楼 得分:0
是static   void   oper(int   b)没有返回任何值   刚才粘错了   ^--^


快速检索

最新资讯
热门点击