2010-02-27 13 views

उत्तर

31

सहयोगी वस्तु का निर्माता (यानी, शरीर) में कोड जावा क्लास के स्थिर प्रारंभिक ब्लॉक में कोड के समान ही है। नीचे दिए गए उदाहरण में, मैं ए का एक उदाहरण बना देता हूं, लेकिन प्रारंभ नहीं होता है। जब वर्ग का पहला उदाहरण बनाई गई है

scala> object Test { class A; object A { println("A.init") }}   
defined module Test 

scala> new Test.A 
res3: Test.A = [email protected] 

scala> Test.A 
A.init 
res4: Test.A.type = [email protected] 

साथी वस्तु के निर्माण को गति प्रदान करने के लिए आप वर्ग निर्माता से उस तक पहुंच सकता है।

scala> object Test { class A { A }; object A { println("A.init") }} 
defined module Test 

scala> new Test.A             
A.init 
res5: Test.A = [email protected] 

scala> new Test.A 
res6: Test.A = [email protected] 

कई परिस्थितियों में, अंतर कोई फर्क नहीं पड़ता। लेकिन अगर आप मिसाइलों (या अन्य साइड इफेक्ट्स) लॉन्च कर रहे हैं, तो आप परवाह हो सकती है!

संबंधित मुद्दे