更新時間:2020-09-29 來源:黑馬程序員 瀏覽量:
(1)問題分析:
考官主要相對static方法的考察,涉及到static關(guān)鍵詞考核,如抽象的(abstract)方法是否可同時是靜態(tài)的(static);static
可否用來修飾局部變量; 內(nèi)部類與靜態(tài)內(nèi)部類的區(qū)別;java中是否可以覆蓋(override) 一個private或者是static的方法。
(2)核心答案講解:
不可以。static方法是靜態(tài)方法,是屬于類的方法,非static方法是屬于對象的方法。因?yàn)榉莝tatic方法是要與對象關(guān)聯(lián)在一起的,必須在創(chuàng)建出一個對象后,才可以通過這個對象調(diào)用非static方法;而static方法可以直接通過類名來調(diào)用,不需要創(chuàng)建對象。也就是說,在一個static方法被調(diào)用時,還可能沒有創(chuàng)建任何實(shí)例對象,此時如果從static內(nèi)部發(fā)出對非static方法的調(diào)用,非static方法是無法關(guān)聯(lián)到對象的。
(3)問題擴(kuò)展:
static表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊。
static修飾的變量習(xí)慣稱為靜態(tài)變量,static修飾的方法稱為靜態(tài)方法,static修飾的代碼塊叫做靜態(tài)代碼塊。
static的意義在于方便在沒有創(chuàng)建對象的情況下來進(jìn)行調(diào)用(方法/變量)。
“static方法就是沒有this的方法。在static方法內(nèi)部不能調(diào)用非靜態(tài)方法,反過來是可以的。而且可以在沒有創(chuàng)建任何對象的前提下,僅僅通過類本身來調(diào)用static方法。這實(shí)際上正是static方法的主要用途。
(4)結(jié)合項(xiàng)目中使用:
1)在項(xiàng)目中,很多工具類會使用static定義方法 ,達(dá)到不用new對象直接類名.方法名直接調(diào)用,使用工具更方便,減少重復(fù)代碼的作用。例如:項(xiàng)目中的UUIDUtils
2)常見的單例模式
單例模式方法定義為靜態(tài)方法:達(dá)到不能用該類在其他地方創(chuàng)建對象,而是通過該類自身提供的方法訪問類中的那個自定義對象的目的。
猜你喜
java訪問級別介紹: private,protected,public和default的區(qū)別