Java 中的ideahub私有構造函數和單例類

            添加時間:2022-02-08 19:56:15

            來源:

            瀏覽:

            我們首先分析以下問題:


            我們可以有ideahub私有構造函數嗎?


            正如您可以輕松猜到的,就像任何方法一樣,我們可以為構造函數提供訪問說明符。如果它是私有的,那么它只能在類內部訪問。


            我們需要這樣的“私有構造函數”嗎?


            我們可以在多種場景中使用私有構造函數。主要的是


            內部構造函數鏈接

            單例類設計模式

            什么是單例類?


            顧名思義,如果一個類將該類的對象數限制為一個,則稱該類為單例類。


            對于這樣的類,我們不能有多個對象。


            單例類廣泛用于網絡和數據庫連接等概念。


            單例類的設計模式:


            單例類的構造函數是私有的,因此必須有另一種方法來獲取該類的實例。使用類成員實例和返回類成員的工廠方法解決了這個問題。


            以下是 java 中的一個示例,說明了相同的內容:



            // Java program to demonstrate implementation of Singleton 

            // pattern using private constructors.

            import java.io.*;

              

            class MySingleton

            {

                static MySingleton instance = null;

                public int x = 10;

                

                // private constructor can't be accessed outside the class

                private MySingleton() {  }

               

                // Factory method to provide the users with instances

                static public MySingleton getInstance()

                {

                    if (instance == null)        

                         instance = new MySingleton();

               

                    return instance;

                } 

            }

              

            // Driver Class

            class Main

            {

               public static void main(String args[])    

               {

                   MySingleton a = MySingleton.getInstance();

                   MySingleton b = MySingleton.getInstance();

                   a.x = a.x + 10;

                   System.out.println("Value of a.x = " + a.x);

                   System.out.println("Value of b.x = " + b.x);

               }    

            }

            輸出:


            斧頭的價值 = 20

            bx 的值 = 20

            我們改變了 ax 的值,bx 的值也得到了更新,因為 'a' 和 'b' 都指向同一個對象,即它們是單例類的對象。


            用戶名 Name
            評論 Comment

            聯系我們

            / CONTACT US

            地 址:四川省成都市航空路豐德國際廣場

            郵政編碼:610000

            電 話:18215660330

            傳 真:18215660330

            手機:18215660330

            郵 箱:179001057@qq.com

            投訴郵 箱:179001057@qq.com

            姓名Name
            標題Title
            郵 箱Emali
            聯系電話Tel
            內容Content
            凤凰彩票