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 द्वारे बदलले आहे ;publicprotectedprivate

जर पद्धत स्थिर असेल, तर 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().