[英]Difference between these two Java (Creating objects)
我正在學習Java中的線程,並且遇到了以下兩個問題:
類運行器實現可運行,並傳遞到Thread對象的構造函數中
Runner runner = new Runner();
Thread thread1 = new Thread(runner);
Thread thread1 = new Thread(new Runner());
我從未遇到過第二種選擇。 如果有人可以幫助新手Java程序員並告訴我第二個變體的用途是什么,以及在構造函數內部創建類的實例時實際調用了什么,那將是很好的選擇?
謝謝。
目前除了第一個之后,你有一個變量沒有區別runner
是指Runner
,並在第二個之后,你不知道。 但是他們兩個都創建了一個新的Runner
對象,並使用該新對象構造了一個新的Thread
。
這僅僅是將任何表達式用作對象的能力,無論是變量還是構造函數。
打個比方,第一個就像“種一個蘋果然后放在桌子上。然后,用那個蘋果在桌子上做餡餅”
第二個類似於“種一個蘋果,然后做成一個餡餅”。 它只是避免使用中間變量來保存蘋果(在代碼中為可運行的)
如果您需要對蘋果做些其他事情而不是傳遞它,則需要(在大多數情況下)存儲到中間變量。 這里的類比是“種蘋果,放在桌子上。去皮。用蘋果做一個新餡餅”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.