ए final
परिवर्तक घोषणा या एक निर्माता में प्रारंभ किया जाना चाहिए।
यदि यह कन्स्ट्रक्टर लौटाता है तो इसे प्रारंभ नहीं किया गया है, इसे कभी शुरू नहीं किया जा सकता है, और यह एक अनियमित चर हो सकता है। संकलक साबित नहीं कर सकता है कि इसे आरंभ किया जाएगा, और इस प्रकार एक त्रुटि फेंकता है।
यह Wikipedia excerpt यह अच्छी तरह से बताते हैं:
एक अंतिम चर केवल एक बार प्रारंभ किया जा सकता है, या तो एक प्रारंभकर्ता या एक काम के बयान के माध्यम से। यह घोषणा के बिंदु पर प्रारंभ करने की आवश्यकता नहीं होती है: यह एक "खाली अंतिम" चर कहा जाता है।कक्षा के एक खाली अंतिम उदाहरण चर को निश्चित रूप से कक्षा के प्रत्येक निर्माता के अंत में असाइन किया जाना चाहिए जिसमें इसे घोषित किया गया है; इसी प्रकार, एक खाली अंतिम स्थैतिक चर को निश्चित रूप से उस वर्ग के स्थिर प्रारंभकर्ता में असाइन किया जाना चाहिए जिसमें इसे घोषित किया गया है: अन्यथा, दोनों मामलों में एक संकलन-समय त्रुटि होती है। (नोट: चर एक संदर्भ है, तो इसका मतलब है कि चर नहीं किसी अन्य वस्तु के संदर्भ के लिए फिर से बाध्य किया जा सकता है लेकिन उद्देश्य यह है कि यह संदर्भ देता है अभी भी परिवर्तनशील है, अगर यह मूल रूप से परिवर्तनशील था।।)
स्रोत
2012-07-05 13:20:21
अंतिम कीवर्ड की एक संपत्ति यह सुनिश्चित करता है कि कि एक चर राज्य को बदल नहीं सकते बाद यह शुरू कर दिया गया है। यह उपयोगकर्ता को घोषित करने या कन्स्ट्रक्टर में प्रारंभ करने के लिए मजबूर करता है। –
कृपया देखें [यह] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4)। – user1329572
एक 'अंतिम' फ़ील्ड एक बार और केवल एक बार सेट किया जाना चाहिए। कंपाइलर केवल यह सुनिश्चित कर सकता है कि यह एक कन्स्ट्रक्टर में सेट होने पर यह मामला है। एक कक्षा में अंतिम के –