zhangsenwei

          張森煒的博客

          聯系 管理
            19 Posts :: 8 Stories :: 55 Comments :: 0 Trackbacks

          今天公司,有同事再問為什么類的構造器寫成私有不報錯?類構造器寫成了私有我們就沒有辦法創建這個類的對象了。例如:

           

          public class Test {
                
          //注意這里的構造器是私有的
              private Test() {
                  System.out.println(
          "我在構造器中。。。。");

              }


              
          public void bb()
              
          {
                  System.out.println(
          "我在bb方法中。。。。");
              }

          }

          當我們創建通過代碼 Test test  = new Test();  來創建Test類的對象時就會報錯,編輯器讓我們創建。

          其實當我們把構造器進行私有化后,主要的目的是不讓開發者隨隨便便創建對象,在java中只有我們要求這個程序中某種類型,只有一個對象存在時會將構造器私有化,也稱之為單態模式或單例模式。例:

          public class A {
              
          private static A a =null;
              
          private A() {
                  System.out.println(
          "我在構造器中。。。。");
              }


              
          public static A aa() {
                  
          /*
                      先判斷 a 對象是否已經開辟了內存,如果對象已
                      經存在就不再創建對象保證程序中只有一個實例
                      
          */

                  
          if(a==null){
                  
          //如果 a 對象沒有開辟內存,為他開辟一塊新的
                   a = new A();
                  }

                  
          //返回 a 對象
                  return a;
              }


              
          public void bb() {
                  System.out.println(
          "我在bb方法中。。。。");
              }

          }
          posted on 2008-06-19 16:58 張森煒 閱讀(1252) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 江口县| 木里| 古交市| 日土县| 兴安县| 承德县| 仁布县| 乐清市| 周至县| 榆树市| 区。| 东明县| 邵东县| 临夏市| 化德县| 柘城县| 个旧市| 丘北县| 华坪县| 吴忠市| 张家界市| 德钦县| 清远市| 屏南县| 巴彦县| 顺平县| 晋中市| 延川县| 夏津县| 浮山县| 德令哈市| 恭城| 正阳县| 兴海县| 周宁县| 舞钢市| 江孜县| 夏河县| 固安县| 宁德市| 濮阳县|