1. ऍक्सेस मॉडिफायर्स
प्रत्येक पद्धतीपूर्वी, प्रोग्रामर तथाकथित प्रवेश सुधारक निर्दिष्ट करू शकतात. यामध्ये खालील कीवर्ड समाविष्ट आहेत: public
, protected
, private
.
हे ऍक्सेस मॉडिफायर तुम्हाला इतर क्लासेसचा ऍक्सेस एका पद्धतीवर प्रतिबंधित करू देतात.
उदाहरणार्थ, जर तुम्ही private
मेथड डिक्लेरेशनच्या आधी कीवर्ड लिहिला, तर मेथड फक्त त्याच वर्गातून कॉल केली जाऊ शकते ज्यामध्ये ती घोषित केली आहे. कीवर्ड public
कोणत्याही वर्गाच्या कोणत्याही पद्धतीवरून चिन्हांकित पद्धतीमध्ये प्रवेश करण्यास अनुमती देतो.
असे एकूण 3 मॉडिफायर आहेत, परंतु एका पद्धतीमध्ये प्रवेशाचे 4 प्रकार आहेत. हे असे आहे कारण ऍक्सेस मॉडिफायरच्या अनुपस्थितीचा अर्थ काहीतरी आहे.
येथून प्रवेश... | ||||
---|---|---|---|---|
सुधारक | कोणताही वर्ग | बाल वर्ग | त्याचे पॅकेज | त्याचा वर्ग |
public |
होय | होय | होय | होय |
protected |
नाही | होय | होय | होय |
सुधारक नाही | नाही | नाही | होय | होय |
private |
नाही | नाही | नाही | होय |
1. public
सुधारक
मॉडिफायरने चिन्हांकित केलेली पद्धत (किंवा व्हेरिएबल किंवा क्लास) प्रोग्राममध्ये कुठूनहीpublic
ऍक्सेस केली जाऊ शकते . हे मोकळेपणाचे सर्वोच्च प्रमाण आहे - कोणतेही निर्बंध नाहीत.
2. private
सुधारक
मॉडिफायरने चिन्हांकित केलेली पद्धत (किंवा व्हेरिएबल किंवा क्लास) फक्त त्याच वर्गातूनprivate
ऍक्सेस केली जाऊ शकते जिथे ती घोषित केली आहे . इतर सर्व वर्गांसाठी, चिन्हांकित पद्धत (किंवा चल) अदृश्य आहे. जणू ते अस्तित्वातच नाही. हे निर्बंधाचे सर्वोच्च स्तर आहे — फक्त त्याचा स्वतःचा वर्ग.
3. कोणतेही सुधारक नाही (डीफॉल्ट सुधारक)
जर एखादी पद्धत (किंवा व्हेरिएबल) कोणत्याही सुधारकाने चिन्हांकित केलेली नसेल, तर ती 'डीफॉल्ट सुधारक' मानली जाते. त्या मॉडिफायरसह व्हेरिएबल्स किंवा पद्धती (म्हणजे काहीही नसताना) ज्या पॅकेजमध्ये घोषित केल्या आहेत त्या सर्व वर्गांना दृश्यमान आहेत . आणि फक्त त्यांना. या सुधारकाला कधीकधी असे देखील म्हटले जाते package-private
, ज्यामध्ये व्हेरिएबल्स आणि पद्धतींचा प्रवेश संपूर्ण पॅकेजसाठी खुला आहे ज्यामध्ये त्यांचा वर्ग आहे.
4. protected
सुधारक
जर एखादी पद्धत मॉडिफायरने चिन्हांकित केली असेल protected
, तर ती समान वर्ग, समान पॅकेज आणि वंशज (ज्या वर्गात पद्धत घोषित केली आहे त्या वर्गाचा वारसा घेणारे वर्ग) मधून प्रवेश केला जाऊ शकतो. आम्ही या विषयाचे जावा कोअर क्वेस्टमध्ये अधिक तपशीलवार विश्लेषण करू.
public
तुम्ही Java Syntax क्वेस्टच्या शेवटी पोहोचेपर्यंत तुमच्या सर्व पद्धतींवर (तसेच तुमचे सर्व वर्ग आणि क्लास व्हेरिएबल्स) तुम्ही मॉडिफायर वापरू शकता . जेव्हा आम्ही सक्रियपणे OOP शिकणे सुरू करतो तेव्हा तुम्हाला इतर सुधारकांची आवश्यकता असेल.
प्रवेश सुधारक का आवश्यक आहेत?
ते एकाच वेळी दहापट आणि शेकडो प्रोग्रामरद्वारे लिहिलेल्या मोठ्या प्रकल्पांसाठी आवश्यक बनतात.
काहीवेळा अशी परिस्थिती असते जेव्हा प्रोग्रामरला खूप मोठ्या पद्धतीचे भागांमध्ये विभाजन करायचे असते आणि कोडचा काही भाग हेल्पर पद्धतींमध्ये हलवायचा असतो. परंतु त्याच वेळी, त्याला किंवा तिला इतर प्रोग्रामरनी या मदतनीस पद्धतींना कॉल करू इच्छित नाही, कारण संबंधित कोड योग्यरित्या कार्य करू शकत नाही.
म्हणून त्यांनी हे ऍक्सेस मॉडिफायर आणले. तुम्ही खाजगी या शब्दाने मदतनीस पद्धत चिन्हांकित केल्यास , तुमच्या वर्गाव्यतिरिक्त कोणताही कोड तुमची मदतनीस पद्धत पाहू शकत नाही.
2. static
कीवर्ड
कीवर्ड static
पद्धत स्थिर करते. याचा अर्थ काय ते आपण नंतर पाहू. आत्तासाठी, स्थिर पद्धतींबद्दल फक्त काही तथ्ये लक्षात ठेवा.
वस्तुस्थिती 1. स्टॅटिक पद्धत कोणत्याही ऑब्जेक्टशी संलग्न नसते , परंतु त्याऐवजी ती ज्या वर्गात घोषित केली जाते त्या वर्गाशी संबंधित असते. स्थिर पद्धत कॉल करण्यासाठी, तुम्हाला लिहावे लागेल:
ClassName.MethodName()
स्थिर पद्धतींची उदाहरणे:
वर्गाचे नाव | स्थिर पद्धतीचे नाव | |
---|---|---|
Thread.sleep() |
Thread |
sleep() |
Math.abs() |
Math |
abs() |
Arrays.sort() |
Arrays |
sort() |
स्टॅटिक मेथडच्या नावापुढील क्लासचे नाव वगळले जाऊ शकते जर तुम्ही स्टॅटिक मेथडला त्याच्या क्लासमधून कॉल केला. म्हणूनच तुम्हाला कॉल केलेल्या प्रत्येक स्टॅटिक पद्धतीच्या नावापुढे लिहिण्याची गरज नाही.Solution
वस्तुस्थिती 2. एक स्थिर पद्धत त्याच्या स्वतःच्या वर्गाच्या अ-स्थिर पद्धतींमध्ये प्रवेश करू शकत नाही . स्थिर पद्धत केवळ स्थिर पद्धतींमध्ये प्रवेश करू शकते. परिणामी, आम्ही main
स्टॅटिक पद्धतीवरून कॉल करू इच्छित असलेल्या सर्व पद्धती घोषित करतो.
का? जेव्हा तुम्ही OOP शिकण्यास सुरुवात कराल आणि स्थिर पद्धती कशा कार्य करतात हे समजून घ्याल तेव्हा तुम्ही स्वतः या प्रश्नाचे उत्तर देऊ शकाल.
3. throws
कीवर्ड
आणखी एक कीवर्ड आहे जो तुम्ही कदाचित मेथड डिक्लेरेशनमध्ये पाहिला असेल - कीवर्ड throws
. ऍक्सेस मॉडिफायर्स आणि static
कीवर्डच्या विपरीत, हा कीवर्ड मेथड पॅरामीटर्सनंतर ठेवला जातो:
public static Type name(parameters) throws Exception
{
method body
}
जेव्हा आपण अपवादांचा अभ्यास करू तेव्हा त्याचा नेमका अर्थ आपण थोड्या वेळाने विचारात घेऊ.
परंतु त्यावर वरवरचा स्पर्श करण्यासाठी, आपण असे म्हणू शकतो की थ्रो कीवर्डने चिन्हांकित केलेली पद्धत त्रुटी (अपवाद) टाकू शकते, म्हणजे वर्गाची उदाहरणे Exception
(आणि त्याचा वारसा घेणारे वर्ग). वर्गात अनेक प्रकारच्या त्रुटी आढळल्यास, तुम्हाला त्या प्रत्येकाची स्वल्पविरामाने विभक्त केलेली यादी करणे आवश्यक आहे.
4. main
पद्धत
ज्या ओळीत पद्धत घोषित केली जाते, ज्यामध्ये सर्व मॉडिफायर्स असतात, ही पद्धत इतर वर्ग आणि पद्धतींमधून कशी कॉल केली जाते यावर परिणाम होईल. ही पद्धत कोणत्या प्रकारची परिणाम देईल यावर परिणाम करते आणि ती चालत असताना कोणत्या त्रुटी शक्य आहेत हे सूचित करते.
अशा ओळीला मेथड डिक्लेरेशन म्हणतात आणि त्याचे खालील सामान्य स्वरूप आहे:
access modifier static Type name(parameters) throws exceptions
कुठे , , , किंवा काहीही access modifiers
द्वारे बदलले आहे ;public
protected
private
जर पद्धत स्थिर असेल, तर static
कीवर्ड दिसतो (तो नॉन-स्टॅटिक पद्धतींसाठी अनुपस्थित आहे)
Type
रिटर्न व्हॅल्यूचा प्रकार आहे ( void
काही परिणाम नसल्यास)
आता तुम्हाला कदाचित समजले असेल की पद्धतीच्या घोषणेमध्ये सर्व कीवर्डचा अर्थ काय आहे main
:
public static void main(String[] args) throws Exception
main
पद्धत घोषित करणे
main()
कीवर्डद्वारे सूचित केल्याप्रमाणे, कोणत्याही वर्गातून पद्धतीमध्ये प्रवेश करणे शक्य आहे public
.
पद्धत स्थिर आहे, म्हणून तिला स्पष्टपणे असे म्हटले जाऊ शकते Solution.main()
.
पद्धत main
कोणताही परिणाम देत नाही. परतीचा प्रकार आहे void
(प्रकार नाही).
पद्धत main
वितर्क घेते(!): स्ट्रिंगची अॅरे. आणि पॅरामीटरचे नाव args
आपल्या मनाला 'वाद' सुचवते. जेव्हा प्रोग्राम सुरू होतो, तेव्हा तुम्ही ते वितर्क पास करू शकता — स्ट्रिंग्सचा अॅरे. args
ते पद्धतीमधील अॅरेमध्ये समाविष्ट केले जातील main()
.
पद्धतीमध्ये (किंवा त्याचे वंशज) सारख्या न हाताळलेल्या त्रुटी Exception
येऊ शकतात main()
.
GO TO FULL VERSION