構造一個類,只能存在一個實例

          Posted on 2006-10-06 13:46 久城 閱讀(851) 評論(2)  編輯  收藏 所屬分類: JavaTest

          在網上見過這道小題,正好寢室的兄弟們在學,借機會整理下!

          題目是這樣的:
          1.定義一個SigCls.java;
          2.SigCls只能存在一個實例;
          3.在構造器中初始化兩個成員屬性;
          4.編寫TestSigCls.java測試;

          分析:
          如果構造一個類,它只能存在一個實例,那它的構造函數一定不能被外部訪問,也就是說它的構造函數應該是private的.
          如果構造函數是private的,外部不能實例化,那就需要在類內部定義一個方法,用來創建這個實例.
          既然只能存在一個實例,那么可以把這個唯一的實例定義成靜態的,這樣靜態成員只初始化一次.

          代碼:

          //SigCls.java文件
          public class SigCls
          {
          ??? private String name;
          ??? private int age;//兩個成員屬性
          ??? private static SigCls inst;//聲明靜態實例

          ??? private SigCls(String aName, int aAge) {
          ??????? name = aName;
          ??????? age = aAge;//初始化兩個成員屬性
          ??? }

          ??? public String getName() {
          ??????? return name;
          ??? }

          ??? public int getAge() {
          ??????? return age;
          ??? }

          ??? public static SigCls getInstance() {
          ??????? if (inst == null)
          ??????? {
          ??????????? System.out.println("none");
          ??????????? inst = new SigCls("xiaozhang", 19);//初始化實例
          ??????????? return inst;
          ??????? }
          ??????? else
          ??????? {
          ??????????? System.out.println("Sig");
          ??????????? return inst;
          ??????? }
          ??? }

          }

          //TestSigCls.java文件
          public class TestSigCls
          {
          ?public static void main(String[] args)
          ?{
          ???????? SigCls sc1;
          ??????? ?SigCls sc2;
          ??????? ?sc1 = SigCls.getInstance();
          ???????
          ?????? ??sc2 = SigCls.getInstance();

          ??????? ?System.out.println(sc1.getName());
          ??????? ?System.out.println(sc2.getName());

          ?}
          }

          應該還有其他的方法,有待研究!



          歡迎來訪!^.^!
          本BLOG僅用于個人學習交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Feedback

          # re: 構造一個類,只能存在一個實例  回復  更多評論   

          2006-10-06 16:26 by JonneyQuest
          傳說中的單例模式……如果學過Java模式就會發現這個并不難。

          # re: 構造一個類,只能存在一個實例  回復  更多評論   

          2006-10-12 00:47 by 黑蝙蝠
          學習 學習 呵呵!準備把一個數據庫連接類 作為單列

          Copyright © 久城

          主站蜘蛛池模板: 黑水县| 北海市| 娄烦县| 剑阁县| 东辽县| 渝北区| 海丰县| 西畴县| 墨玉县| 冕宁县| 昭平县| 衡阳县| 邹城市| 沭阳县| 肥乡县| 泾阳县| 天台县| 迁西县| 尉氏县| 嘉义市| 福鼎市| 桃园市| 伊春市| 个旧市| 贡山| 湖州市| 连平县| 泾阳县| 民丰县| 绥滨县| 读书| 西青区| 顺平县| 故城县| 阿城市| 浦江县| 苏尼特右旗| 南陵县| 黄骅市| 绵竹市| 安阳市|