java怎么調(diào)用另一個(gè)類的方法 Java中的一個(gè)類怎么調(diào)用另一個(gè)類中的方法?
Java中的一個(gè)類怎么調(diào)用另一個(gè)類中的方法?Java類有兩種方法。一種是類方法,用static修改;另一種是實(shí)例方法,不用static修改。類方法的調(diào)用方式與類名和方法名相同。實(shí)例方法必須由實(shí)例調(diào)用。
Java中的一個(gè)類怎么調(diào)用另一個(gè)類中的方法?
Java類有兩種方法。一種是類方法,用static修改;另一種是實(shí)例方法,不用static修改。類方法的調(diào)用方式與類名和方法名相同。實(shí)例方法必須由實(shí)例調(diào)用。方法名稱。
如果另一個(gè)類中的方法是私有的,則不能直接調(diào)用。如果是其他類型,則視情況而定。如果它是靜態(tài)的,則可以使用類名直接調(diào)用它。如果它不是靜態(tài)的,則需要使用另一個(gè)類(即該類生成的對象)的實(shí)例來調(diào)用它。
對于靜態(tài)方法,其他靜態(tài)或非靜態(tài)方法可以直接調(diào)用它。對于非靜態(tài)方法,可以直接調(diào)用其他非靜態(tài)方法。但是其他靜態(tài)方法只能通過對象調(diào)用它。靜態(tài)方法不能被非靜態(tài)方法重寫。
在不同的類之間,無論調(diào)用方法是非靜態(tài)的還是靜態(tài)的,如果被調(diào)用方法是靜態(tài)的,則可以通過類名和對象調(diào)用(但不建議使用對象方法,因?yàn)樗鼘儆诜庆o態(tài)調(diào)用方法),則只能通過對象調(diào)用。
java兩個(gè)線程同時(shí)調(diào)用一個(gè)類里的同一個(gè)方法,這樣會出現(xiàn)什么情況?有沒有問題?
根據(jù)不同情況,可能有:
1。如果此方法不涉及寫入公共資源(如靜態(tài)變量或?qū)懭胛募瑒t在修改數(shù)據(jù)庫值時(shí)不會產(chǎn)生影響。
2. 例如,類中的方法只計(jì)算輸入?yún)?shù)并返回計(jì)算值,這沒有任何效果。
3. 但是,如果要修改公共資源,例如修改存儲在數(shù)據(jù)庫中的值,則可能會出現(xiàn)問題,例如:
public void writedb(string key,string value){
collectiondb()
write(key,string value){
,4。由于Java線程的運(yùn)行順序不確定,第一個(gè)線程連接到數(shù)據(jù)庫后掛起,第二個(gè)線程開始運(yùn)行。如果collectiondb()進(jìn)程使用類中的實(shí)例變量connection,則Conn用于保存數(shù)據(jù)庫連接。當(dāng)?shù)诙€(gè)線程完成運(yùn)行時(shí),Conn也關(guān)閉。當(dāng)?shù)谝粋€(gè)線程繼續(xù)執(zhí)行write函數(shù)來寫入數(shù)據(jù)庫值時(shí),將引發(fā)異常。
這是一個(gè)示例,還有其他問題可能會生成臟數(shù)據(jù)。
如果多線程使用公共資源,最好在同步方法上聲明synchronized關(guān)鍵字