靜態(tài)變量static的用法 java靜態(tài)方法與非靜態(tài)方法有什么區(qū)別?
java靜態(tài)方法與非靜態(tài)方法有什么區(qū)別?在創(chuàng)建對(duì)象之前可以使用靜態(tài)方法。必須通過(guò)新對(duì)象調(diào)用非靜態(tài)方法。例如:在沒(méi)有新對(duì)象之前,publicclassper{publicstaticstringgett
java靜態(tài)方法與非靜態(tài)方法有什么區(qū)別?
在創(chuàng)建對(duì)象之前可以使用靜態(tài)方法。必須通過(guò)新對(duì)象調(diào)用非靜態(tài)方法。例如:在沒(méi)有新對(duì)象之前,publicclassper{publicstaticstringgettype(){return“human”}publicstringgetname(){return“Zhang San”}的上述類中的GetType方法可以這樣使用:stringtype=每種類型()//type=“human”,但getname方法不能以這種方式使用。編譯不會(huì)通過(guò)。Getname必須是這樣的:perp=newper()stringname=p.Getname()//Na當(dāng)然,GetType方法也可以通過(guò)對(duì)象調(diào)用:stringtype=p.GetType()//type=“human”總之,靜態(tài)方法在創(chuàng)建實(shí)例之前存在,而非靜態(tài)方法只在創(chuàng)建對(duì)象之后存在。
什么是Java語(yǔ)言中所說(shuō)的非靜態(tài)方法,它和靜態(tài)方法有何區(qū)別?
沒(méi)有此項(xiàng)的靜態(tài)方法不能引用非靜態(tài)變量或方法,而不是在其自己的方法體中定義的成員和參數(shù)。子類不允許重寫(xiě)靜態(tài)方法,但子類可以重寫(xiě)父類的靜態(tài)方法。子類不能將父類中的非靜態(tài)方法重寫(xiě)為靜態(tài)方法。主要方法也是靜態(tài)方法。要在主方法中訪問(wèn)類中的成員變量和方法,需要在方法體中創(chuàng)建類對(duì)象
有兩種:第一,不要在靜態(tài)方法中實(shí)例化新對(duì)象。在這種情況下,靜態(tài)方法中要調(diào)用的變量和方法必須是靜態(tài)的。其次,在靜態(tài)方法中實(shí)例化一個(gè)對(duì)象。在這種情況下,實(shí)例化對(duì)象中的變量和方法不需要是靜態(tài)的。
靜態(tài)方法里面的變量,是靜態(tài)還是非靜態(tài)的?
原因很簡(jiǎn)單,因?yàn)榭梢灾苯邮褂渺o態(tài)方法而無(wú)需實(shí)例化。但非靜態(tài)方法只能在實(shí)例的幫助下使用。如果在靜態(tài)方法中使用非靜態(tài)變量,則不能直接使用“無(wú)實(shí)例化”變量。矛盾。