1. स्थिरांक
इतर अनेक प्रोग्रामिंग भाषांमध्ये स्थिरांक असतात , म्हणजेच व्हेरिएबल्स ज्यांची मूल्ये बदलता येत नाहीत . सहसा, ते काही मूलभूत गोष्टींसाठी वापरले जातात जसे की Pi
वर्षाच्या महिन्यांतील संख्या किंवा दिवसांची संख्या. असे म्हटले आहे की, तत्वतः, प्रोग्रामर कोणत्याही व्हेरिएबलला स्थिर बनवू शकतो, जर त्याने किंवा तिने ठरवले की तसे करणे आवश्यक आहे.
तर तुम्ही Java मध्ये अपरिवर्तनीय व्हेरिएबल (स्थिर) कसे घोषित कराल? यासाठी एक विशेष कीवर्ड आहे: final
. अपरिवर्तनीय व्हेरिएबल तयार करणे सामान्य बनवण्यासारखेच दिसते. फरक एवढाच आहे की व्हेरिएबलच्या प्रकारापूर्वी तुम्हाला हा शब्द लिहावा लागेल final
, जसे:
final Type name = value;
जर तुम्ही व्हेरिएबलला वेगळे मूल्य नियुक्त करण्याचा प्रयत्न केला final
, तर तुमचा प्रोग्राम संकलित होणार नाही.
जेव्हा व्हेरिएबल final
घोषित केले जाते तेव्हा ते आरंभ करणे आवश्यक आहे (त्याला मूल्य नियुक्त करणे आवश्यक आहे). या नियमाला एक अपवाद आहे: तुम्ही स्टॅटिक क्लास व्हेरिएबलचे इनिशिएलायझेशन कन्स्ट्रक्टरमध्ये हलवू शकता. परंतु तुम्ही याविषयी लेव्हल 10 मध्ये शिकाल .
कीवर्डची संख्या कमी करण्यासाठी, Java डेव्हलपर हा शब्द 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