posts - 1, comments - 0, trackbacks - 0, articles - 2
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          警惕

          Posted on 2005-09-15 22:33 太陽(yáng)雨 閱讀(75) 評(píng)論(0)  編輯  收藏

             現(xiàn)在大部分人寫(xiě)程序的時(shí)候總是希望將數(shù)據(jù)封裝的相對(duì)良好,但是往往在public修飾的方法中返回私有成員,從而導(dǎo)致在調(diào)用方法中的對(duì)象與該私有成員指向相同的內(nèi)存空間,從而破壞了封裝性。從下面的例子中 可以看到結(jié)果。

          class Sport{
            
          public String name = "Green";
            
          public int age = 20;
            
          public Object clone(){
              Object obj 
          = null;
              
          try{
                obj 
          = super.clone();
              }
          catch(Exception e){
                      }

              
          return obj;
            }

          }

          public class Test{
            sport s 
          = new sport();
            sport ss 
          = new sport();
            
          private String [][] content = {
                  
          {"","Test"},{"ar"}
                                          }
          ;

            
          protected void pp(){
              System.out.println(ss.name);
            }
           
            
          public sport getSs(){
                 
          return (sport)ss.clone();
            }

          }
          class Demo
          {
            
          public static void main(String [] args){
                  Test t 
          = new Test();
                  t.change();
                  t.pp();
                  sport spt
          = t.getSs();
                      //spt.name = "Test";
                  t.pp();
              }

          }
          如果Test的getSs中直接返回ss,則在Demo中spt.name就可以修改t.name

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 江陵县| 安福县| 郸城县| 平定县| 建昌县| 报价| 内江市| 公主岭市| 鄯善县| 睢宁县| 九江市| 册亨县| 凤城市| 东阳市| 闽侯县| 东至县| 莆田市| 来安县| 南平市| 玉山县| 元氏县| 华亭县| 江城| 聂拉木县| 诸城市| 米泉市| 成都市| 海盐县| 岳普湖县| 聊城市| 库尔勒市| 浦县| 平陆县| 定陶县| 甘泉县| 黑山县| 武夷山市| 渭南市| 甘孜| 黔东| 荃湾区|