學習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 函數