java靜態(tài)和非靜態(tài)的調(diào)用 Java中為什么要有靜態(tài)方法和非靜態(tài)方法之分?
Java中為什么要有靜態(tài)方法和非靜態(tài)方法之分?靜態(tài)方法沒有對象,也沒有對象數(shù)據(jù)。它們不能在多個(gè)實(shí)例或數(shù)組中使用。而不是靜態(tài)方法,只能在建立實(shí)例后使用,這在很多情況下會(huì)非常麻煩。您可以理解非靜態(tài)方法用于
Java中為什么要有靜態(tài)方法和非靜態(tài)方法之分?
靜態(tài)方法沒有對象,也沒有對象數(shù)據(jù)。它們不能在多個(gè)實(shí)例或數(shù)組中使用。而不是靜態(tài)方法,只能在建立實(shí)例后使用,這在很多情況下會(huì)非常麻煩。您可以理解非靜態(tài)方法用于對象。靜態(tài)方法用于工具類。另一種理解是,非靜態(tài)方法作為參數(shù)隱式地傳入當(dāng)前對象。如果它們都是靜態(tài)方法,那么代碼實(shí)際上類似于C或basic,而不是面向?qū)ο蟮?。它們都不是靜態(tài)方法。實(shí)際上,它們是可以實(shí)現(xiàn)的,但是代碼量會(huì)增加很多。
java靜態(tài)方法與非靜態(tài)方法有什么區(qū)別?
在創(chuàng)建對象之前可以使用靜態(tài)方法。必須通過新對象調(diào)用非靜態(tài)方法。例如:在沒有新對象之前,publicclassper{publicstaticstringgettype(){return“human”}publicstringgetname(){return“Zhang San”}的上述類中的GetType方法可以這樣使用:stringtype=每種類型()//type=“human”,但getname方法不能以這種方式使用。編譯不會(huì)通過。Getname必須是這樣的:perp=newper()stringname=p.Getname()//Na當(dāng)然,GetType方法也可以通過對象調(diào)用:stringtype=p.GetType()//type=“human”總之,靜態(tài)方法在創(chuàng)建實(shí)例之前存在,而非靜態(tài)方法只在創(chuàng)建對象之后存在。