1. स्थिरांक
कई अन्य प्रोग्रामिंग भाषाओं में स्थिरांक होते हैं , अर्थात, वेरिएबल्स जिनके मान बदले नहीं जा सकते । आमतौर पर, इनका उपयोग किसी प्रकार की मूलभूत चीज़ों के लिए किया जाता है जैसे कि Pi
वर्ष के महीनों में संख्या या दिनों की संख्या। उस ने कहा, सिद्धांत रूप में, एक प्रोग्रामर किसी भी चर को स्थिर बना सकता है, यदि वह निर्णय लेता है कि ऐसा करना आवश्यक है।
तो आप जावा में एक अपरिवर्तनीय चर (स्थिर) कैसे घोषित करते हैं? इसके लिए एक विशेष कीवर्ड है: final
. एक अपरिवर्तनीय चर बनाना सामान्य बनाने जैसा ही दिखता है। final
अंतर केवल इतना है कि चर के प्रकार से पहले आपको इस तरह शब्द लिखना होगा :
final Type name = value;
यदि आप एक final
चर के लिए एक अलग मान निर्दिष्ट करने का प्रयास करते हैं, तो आपका प्रोग्राम संकलित नहीं होगा।
घोषित होने पर एक final
चर प्रारंभ किया जाना चाहिए (एक मान इसे असाइन किया जाना चाहिए)। इस नियम का एक अपवाद है: आप एक स्टैटिक क्लास वेरिएबल के इनिशियलाइज़ेशन को एक कंस्ट्रक्टर में स्थानांतरित कर सकते हैं। लेकिन आप इसके बारे में स्तर 10 में जानेंगे ।
खोजशब्दों की संख्या को कम करने के लिए, जावा डेवलपर्स शब्द का उपयोग final
केवल स्थिरांक घोषित करने से अधिक के लिए करते हैं। final
विधियों और यहां तक कि कक्षाओं पर भी लागू हो सकता है। घोषित विधियों को final
ओवरराइड नहीं किया जा सकता है, और घोषित वर्ग को final
विरासत में नहीं लिया जा सकता है।
संशोधक final
को किसी भी चर से पहले जोड़ा जा सकता है: स्थानीय चर, विधि पैरामीटर, वर्ग फ़ील्ड और स्थिर वर्ग चर।
ध्यान दें कि final
एक चर नाम से पहले उस चर में किसी भी परिवर्तन के विरुद्ध सुरक्षा है । यदि कोई चर किसी वस्तु के संदर्भ को संग्रहीत करता है, तो वस्तु को अभी भी बदला जा सकता है।
उदाहरण:
|
हम एक सरणी बनाते हैं। इसकी अनुमति नहीं है: चर data के रूप में घोषित किया गया है final । लेकिन आप ऐसा कर सकते हैं। और यह भी। |
वैश्विक स्थिरांक
यदि आप अपने कार्यक्रम में वैश्विक स्थिरांक घोषित करने का निर्णय लेते हैं, तो आपको स्थैतिक वर्ग चर बनाने और उन्हें public
और बनाने की आवश्यकता है final
। ऐसे चरों के नामों के लिए एक विशेष शैली है: वे सभी बड़े अक्षरों में लिखे गए हैं, शब्दों को अलग करने के लिए एक अंडरस्कोर वर्ण का उपयोग किया जाता है।
उदाहरण:
class Solution
{
public static final String SOURCE_ROOT = "c:\\projects\\my\\";
public static final int DISPLAY_WIDTH = 1024;
public static final int DISPLAY_HEIGHT = 768;
}
2. चर छायांकन
जैसा कि हमने पहले कहा, आप एक ही विधि में एक ही नाम के साथ कई स्थानीय चर नहीं बना सकते। विभिन्न तरीकों से आप कर सकते हैं।
लेकिन यहाँ वह है जो आप शायद नहीं जानते हैं: उदाहरण चर और स्थानीय विधि चर का एक ही नाम हो सकता है।
उदाहरण:
कोड | परिवर्तनशील दृश्यता |
---|---|
|
|
विधि में add
, हमने नाम का एक स्थानीय चर घोषित किया sum
। विधि के अंत तक, यह उदाहरण चर को छाया (या मास्क ) करता है।sum
ठीक है, आप कहते हैं, कि कुछ अर्थों में इसकी अपेक्षा की जानी चाहिए। लेकिन वह कहानी का अंत नहीं है। यह पता चला है कि यदि एक स्थानीय चर द्वारा एक आवृत्ति चर को छायांकित किया जाता है, तो विधि के भीतर आवृत्ति चर को संदर्भित करने का एक तरीका अभी भी है। this
ऐसा हम इसके नाम के पहले कीवर्ड लिखकर करते हैं :
this.name
यहाँ एक उदाहरण दिया गया है जहाँ नाम विरोध सफलतापूर्वक सुलझाया गया है:
कोड | परिवर्तनशील दृश्यता |
---|---|
|
|
कीवर्ड के साथ count
या उसके बिना चर sum
हर जगह उपलब्ध हैं । this
उन पंक्तियों पर जहां sum
स्थानीय चर आवृत्ति चर को छाया करता है sum
, उदाहरण चर को केवल कीवर्ड का sum
उपयोग करके ही एक्सेस किया जा सकता है ।this
this
यदि एक आवृत्ति चर के बजाय एक स्थिर वर्ग चर छाया हुआ है, तो आपको इसे कीवर्ड के बजाय वर्ग नाम के माध्यम से एक्सेस करने की आवश्यकता है :
ClassName.name
उदाहरण:
कोड | परिवर्तनशील दृश्यता |
---|---|
|
|
आप उपसर्ग के रूप में कक्षा के नाम के साथ या उसके बिना हर जगह count
और स्थिर चर का उपयोग कर सकते हैं। उन पंक्तियों में जहां स्थानीय चर आवृत्ति चर को छाया करता है , आवृत्ति चर तक पहुंच केवल तभी संभव है जब उपसर्ग के रूप में उपयोग किया जाता है।sum
Solution
sum
sum
sum
Solution
3. एक for
पाश के अंदर चर
और एक और छोटा लेकिन दिलचस्प तथ्य।
वहाँ भी एक जगह है जहाँ एक चर को एक विशेष तरीके से घोषित किया जाता है - for
लूप के अंदर ।
आपको याद होगा कि एक for
लूप में आमतौर पर कोष्ठक में एक काउंटर वैरिएबल होता है। और इस वेरिएबल की विजिबिलिटी क्या होगी? आखिरकार, यह लूप के शरीर में नहीं है। क्या यह पूरी विधि है? या नहीं?
for
सही उत्तर है: लूप के हेडर में घोषित वेरिएबल केवल लूप की बॉडी और लूप के हेडरfor
में दिखाई देता है ।
उदाहरण:
कोड | परिवर्तनशील दृश्यता |
---|---|
|
|
इसलिए, आप हमेशा अपने कोड में एक के बाद एक लूप लिख सकते हैं और एक ही नाम के काउंटर वेरिएबल्स का उपयोग कर सकते हैं - इससे कोई समस्या नहीं होगी।
उदाहरण:
कोड | परिवर्तनशील दृश्यता |
---|---|
|
|
GO TO FULL VERSION