java参数:java中的参数是通过引用的方式传递?



       相信很多新手朋友都对java存在个误解:java中参数是通过引用方式传递告诉大家这种想法是今天我们来带你认识真正JAVA参数传递思路方法中国自学编程网www.zxbc.cn 
       我们先来看看这样个例子:
import java.awt.Po;
 test1...{
         public  void mody(Po pp, i)...{
            pp.Location(2,3);
            i=5;
            .out.prln(\"In mody  p=\"+pp+\"  and  i  =\"+i);
          }
 
         public  void (String args)...{
             Po p =  Po(0,0);
              i =100;
             .out.prln(\"Before mody p=\"+p+\"  and i =\"+i);
             mody(p,i);
             .out.prln(\"After mody p=\"+p+\"  and  i  =\"+i)
           }

}
 
      
大家可以想想得到结果是什么?
 
-------------------正确输出应该是:
       Before mody p = java.awt.Po[x=0,y=0] and i =100
       In mody p=java.awt.Po[x=2,y=3] and i=5;
        After mody p=java.awt.Po[x=2,y=3] and i =100;
前两行可能你们都想到了第 3行可能会想不到
--------------------
 为什么会得到这样结果呢?
     很明显 mody思路方法修改了p对象却没有改变i
     说重点吧事实上mody思路方法是在和Po对象引用复件打交道
    而不是和Po对象复件在打交道
     p是个对象引用而且java是以值方式传递参数
    说具体点吧java是以值方式传递对象引用
    当p从被传入到mody 思路方法时传递是p这是个引用复件所以mofy是在和同个对象打交道只不过是通过它别名pp罢了
Tags:  参数传递方式 jsp参数传递 参数传递 java参数

延伸阅读

最新评论

发表评论