隨筆 - 40, 文章 - 0, 評(píng)論 - 20, 引用 - 0
          數(shù)據(jù)加載中……

          Java對(duì)象操作(自己體會(huì),不一定說的正確,但是都是在程序中測(cè)試)

            Java中c中的指針的概念,但是我在使用中還是碰到過一些問題,如我把一個(gè)一個(gè)對(duì)象A賦值給對(duì)象B時(shí),這兩個(gè)對(duì)象有一個(gè)改變,那么另外一個(gè)也相應(yīng)的改變。下面分別談?wù)勥@可能發(fā)生問題的幾種情況:

          <一>從“一個(gè)對(duì)象到另一個(gè)對(duì)象的賦值”,如:

                  Class  A = new Class();

                 Class  B  = A;

                 這種情況實(shí)際把句柄從一個(gè)地方復(fù)制到另外一個(gè)地方,這種情況下對(duì)象B和A實(shí)際指向的是同一個(gè)句柄,更新B會(huì)影響到A,同樣更新A也會(huì)影響到B。

          <二>把對(duì)象作為方法的參數(shù)傳遞到一個(gè)方法中。Java方法的參數(shù)傳遞可以分成兩種:一種是值傳遞,這種一般是簡(jiǎn)單的數(shù)據(jù)類型,如int,long,double,char這些等;一種類似是c中的引用傳遞,就是把對(duì)象作為一個(gè)引用傳遞給方法參數(shù),在這種情況下,在方法中把這個(gè)傳入的參數(shù)對(duì)象改變,那么相應(yīng)的傳入這個(gè)參數(shù)引用的對(duì)象也相應(yīng)的改變。如:

               Number A = new Number();
               A.num   = 9;
               test(A);

               方法定義:

              public  void   test(Number n){
                n.num = 99;
              }

             那么A的num值會(huì)變成99.

          <三>;把對(duì)象保存在ArrayList中.如果把一個(gè)對(duì)象保存在一個(gè)AyyayList中,如果這個(gè)對(duì)象再發(fā)生改變,那么在這個(gè)ArrayList中保存的對(duì)象也會(huì)改變,說白了還是兩個(gè)還是公用同一個(gè)句柄.如:

             Number A = new Number();
               A.num = 100;
               java.util.ArrayList list = new ArrayList();
               list.add(A);
               A.num = 999;
               Number B = (Number)list.get(0);
               System.out.println(B.num);

          那么輸出為999,對(duì)象A的更改影響到了ArrayList中的保存的對(duì)象.

           

          posted on 2005-06-08 00:19 月亮 閱讀(273) 評(píng)論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 班戈县| 基隆市| 邵武市| 孝感市| 林口县| 沾益县| 宣武区| 南汇区| 武隆县| 罗城| 黎平县| 马关县| 临清市| 涡阳县| 河曲县| 丘北县| 商丘市| 多伦县| 平果县| 太湖县| 乌苏市| 洪湖市| 抚宁县| 湘潭市| 庆城县| 邳州市| 隆安县| 哈密市| 河间市| 利川市| 乐山市| 城固县| 宜兰县| 灯塔市| 宜丰县| 紫云| 莫力| 梨树县| 图片| 丘北县| 武穴市|