隨筆-4  評論-2  文章-0  trackbacks-0
          最近在做項目時碰到關(guān)于java值傳遞和引用傳遞的問題,查不了少文章,做了幾個例子才搞明白,當然我總結(jié)出來的不一定是對的,歡迎大家來拍磚。主要有以下兩條:
          1.如果是基本類型,那么傳遞進去的就是值傳遞。
          2.如果不是基本類型,那么傳遞進去的就是對象引用的拷貝。

          以下是例子:
          public class Test {

              private String name;

              public String getName() {
                  return name;
              }

              public void setName(String name) {
                  this.name = name;
              }
          }

          public class Test1 {    
              private static Test staticTest;
              
              public static void main(String[] args) {
                  Test t1 = new Test();
                  call(t1);
                  System.out.println(t1.getName());
              }
              
              public static void call(Test rt) {
                  staticTest = new Test();
                  staticTest.setName("abc");
                  rt.setName("cba");
                  rt = staticTest;
              }
          }
          此時的運行結(jié)果是什么?機器給出的結(jié)果是“cba”,為什么會這樣,我理解如下:
          rt.setName("cba");
          此時rt是t1的一個復制,但是又不代表t1,但是rt和t1都指向同一個對象,無論通過rt還是t1來都會改變所引用對象的值。
          rt = staticTest;
          這時會把staticTest的引用賦給rt,但是rt只是t1的一個引用, rt此時指向staticTest,但是不會更改t1的值。
          所以會發(fā)生以上的結(jié)果。不知道正確與否?



          posted on 2008-09-05 14:48 星光 閱讀(249) 評論(2)  編輯  收藏

          評論:
          # re: 關(guān)于JAVA中的值傳遞與引用傳遞增 2008-09-05 15:33 |
          很經(jīng)典的值類型和引用類型的例子,俺贊同你的理解
          java編程思想上說還有一種理解就是不區(qū)分什么值類型、引用類型,統(tǒng)統(tǒng)都是值類型,rt也是一個值,只不過這個值是一個指向存放對象隊中的地址

          怎么說都對,呵呵,理解精髓  回復  更多評論
            
          # re: 關(guān)于JAVA中的值傳遞與引用傳遞增[未登錄] 2008-09-05 17:18 | 星光
          嗯,我也不知道理解的正確與否,只是希望大家看一下,希望對在這方面有問題的人有所幫助。  回復  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 玉树县| 准格尔旗| 酉阳| 綦江县| 鄂尔多斯市| 陇西县| 邢台市| 海晏县| 岳普湖县| 巴南区| 平度市| 桃江县| 东山县| 新干县| 城步| 广元市| 亳州市| 达拉特旗| 汾阳市| 资阳市| 南通市| 江川县| 新河县| 桐柏县| 峨眉山市| 密山市| 宜昌市| 洛浦县| 迁西县| 嘉定区| 霍山县| 临武县| 阳山县| 石阡县| 那坡县| 青神县| 沁阳市| 霍州市| 南通市| 咸阳市| 新宁县|