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' 都指向同一個對象,即它們是單例類的對象。
/ CONTACT US
地 址:四川省成都市航空路豐德國際廣場
郵政編碼:610000
電 話:18215660330
傳 真:18215660330
手機:18215660330
郵 箱:179001057@qq.com
投訴郵 箱:179001057@qq.com