Java對變量和對象的初始化做的是很好的!以下是本人自己寫的一點...............
在Java中,普通變量(局部變量)需要明確初始化之后才能使用,否則編譯器將報錯!
而對于對象的初始化Java也采用了C++引入的構造器,構造器是一個在創建對象時被自動調用的特殊方法。這樣可以確保在用戶有能力操作對象之前對象已經被初始化了。
在創建對象時,域變量及域對象首先會被初始化為起默認值,然后才會根據你在構造器中的賦值進行改變!
在類的內部,變量定義的先后順序決定了初始化的順序。即使變量定義散布于方法定義之間,它們仍舊會在任何方法(包括構造器)被調用之前得到初始化。
至于靜態數據域的初始化,大家都知道啦,無論你創建多少個對象,類的靜態數據域都只有一份,它只占用一份存儲區域。并且它的初始化是發生在“非靜態域”之前,在類被第一次加載的時候被初始化“一次”,只初始化一次!
在Java中,如果用戶沒有為類提供一個構造器,那么編譯器就會自動幫你創建一個默認構造器(即無參構造器),以便用戶能創建對象。但是如果用戶已經定義了一個構造器(無論是有參還是無參的),編譯器就不會再為你自動創建默認構造器了!和C++一樣,Java中的構造器是可以重載的,并且他們是可以互相調用的。當構造器調用時就涉及到了我們的關鍵字“this”(this這個關鍵字表示的是當前對象的引用)。當在一個構造器中調用另一個構造器時必須把調用語句置于本構造器的第一行,如:
雖然在構造器中用this關鍵字調用另一個構造器,但是卻不能同時調用兩個以及更多。
posted on 2009-02-26 22:36
Jun Woo 閱讀(2055)
評論(1) 編輯 收藏