Java类的调用顺序决定的单例模式

原创
2014/11/01 08:52
阅读数 30

  学习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 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部