Java類的調用順序決定的單例模式

  學習Java有一年多,不少基礎知識是瞭解的,有些知道怎麼用,但不明白,它是怎麼來的。 
常常在書上看到介紹類裏面的構造方法,靜態方法,普通方法與靜態變量,調用順序,但不明白它的真正用處。 
  今天走進公司時,我忽然間,想到了Java的類中,方法,變量的調用順序重要嗎,我一下就想到了單例模式,由於我以前只是知道單例模式的用處,但不明白它怎麼來的,單例模式不就是根據類的啓動順序寫出來,由於類會先調用static,而後,再是構造函數,可見有些知識點,你只要靈活一點,就大有用處,固然不知,你們認爲個人觀點對不對,我認爲是這樣的。 



package com.fanshe; 

public class TestB { 

public static void main(String[] args) { 
TestA tmp = TestA.getSingleton(); 
tmp.Show("TestB調用show"); 
tmp.setX(20); 
System.out.println(tmp.getX()); 
TestC tmpc = new TestC(); 
tmpc.Td(); 





//先調用靜態變量與靜態方法,再是構造方法 
package com.fanshe; 

public class TestA { 

private static TestA Singleton = null; 
int x; 

public TestA() { 
x = 15; 
    System.out.println("進入構造方法..."); 


public static TestA getSingleton(){  
System.out.println("Singleton = "+Singleton); 
if (Singleton == null){ 
System.out.println("進入單例..."); 
Singleton = new TestA(); 

return Singleton; 


public void Show(String str) 

System.out.println(str); 

public int getX() { 
return x; 


public void setX(int x) { 
this.x = x; 






package com.fanshe; 

public class TestC { 

public void Td() 

TestA.getSingleton().Show("TestC調用show"); 
System.out.println(TestA.getSingleton().getX()); 




結果以下: 
Singleton = null 
進入單例... 
進入構造方法... 
TestB調用show 
20 
Singleton = com.fanshe.TestA@dd7404 
TestC調用show 
Singleton = com.fanshe.TestA@dd7404 
20 函數

相關文章
相關標籤/搜索