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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值