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