वर्ग हे जटिल डेटा प्रकार आहेत या वस्तुस्थितीबद्दल आम्ही आधीच बोललो आहोत. आता वर्गांच्या दुसर्‍या बाजूबद्दल थोडेसे बोलूया — Java मशीनद्वारे वर्ग कसे हाताळले जातात. लक्षात ठेवा की Java मध्ये प्रत्येक गोष्ट एक ऑब्जेक्ट आहे, अगदी एक वर्ग आहे. वर्ग एक वस्तू आहे. हे तुम्हाला आश्चर्यचकित करते का? चला तर मग चालू ठेवूया.

मेमरीमध्ये वर्ग लोड करत आहे

वास्तविक, जेव्हा वर्ग मेमरीमध्ये लोड केला जातो तेव्हा तीन विशेष "ऑब्जेक्ट्स" तयार होतात:

मेमरीमध्ये वर्ग लोड करत आहे

चित्राचे संक्षिप्त वर्णन:

पिवळा आयत:

कोड फाइल डिस्कवर ".class" विस्तारासह फाइल म्हणून संग्रहित केली जाते. त्यामध्ये वर्ग, त्याची फील्ड आणि पद्धती, तसेच बायटेकोडमध्ये संकलित केलेल्या पद्धतींचा स्त्रोत कोड याबद्दल माहिती आहे.

नारिंगी आयत:

जेव्हा Java मशीन मेमरीमध्ये क्लास लोड करते, तेव्हा ते संगणकाच्या प्रोसेसर आणि ऑपरेटिंग सिस्टमसाठी विशिष्ट मशीन कोडमध्ये बायकोड संकलित करते. फक्त Java मशीनला या मशीन कोडमध्ये प्रवेश आहे. Java प्रोग्रामर म्हणून, आम्हाला त्यात प्रवेश नाही.

हिरवा आयत:

जावा मशीन एक ऑब्जेक्ट तयार करते ज्यामध्ये सर्व स्टॅटिक व्हेरिएबल्स आणि क्लासच्या पद्धती असतात. तुम्ही वर्गाचे नाव वापरून या "ऑब्जेक्ट" मध्ये प्रवेश करता.

उदाहरणार्थ, जेव्हा तुम्ही लिहिता , तेव्हा तुम्ही वर्गात असलेल्या स्टॅटिक व्हेरिएबलचा संदर्भ घेत आहात . ही वस्तू आपला हिरवा आयत आहे. आणि तिथेच स्टॅटिक व्हेरिएबल साठवले जाते.java.lang.Math.PIPIjava.lang.Mathjava.lang.MathPI

निळा आयत:

जेव्हा Java मशीन वर्गाचा कोड मेमरीमध्ये लोड करते, तेव्हा ते एक विशेष java.lang.Classऑब्जेक्ट तयार करते, जे लोड केलेल्या वर्गाबद्दल माहिती संग्रहित करते: त्याचे नाव, पद्धतीची नावे, फील्डची नावे आणि प्रकार इ.

"वर्ग" हे नाव थोडे गोंधळात टाकणारे असू शकते. याला ClassInfo म्हणणे अधिक अर्थपूर्ण ठरेल, कारण हा वर्ग लोड केलेल्या वर्गाबद्दल काही माहिती संग्रहित करतो.

तुम्ही यासारख्या कमांडचा वापर करून कोणत्याही प्रकारच्या क्लास ऑब्जेक्ट मिळवू शकता:

Class name = ClassName.class;

उदाहरणे:

कोड नोंद
Class a = String.class;
वर्गाविषयी Classमाहितीसह ऑब्जेक्ट मिळवाString
Class b = Object.class;
वर्गाविषयी Classमाहितीसह ऑब्जेक्ट मिळवाObject
Class c = Integer.class;
वर्गाविषयी Classमाहितीसह ऑब्जेक्ट मिळवाInteger
Class d = int.class;
प्रकाराबद्दल Classमाहितीसह एक ऑब्जेक्ट मिळवाint
Class e = void.class;
प्रकाराबद्दल Classमाहितीसह एक ऑब्जेक्ट मिळवाvoid

तुम्ही कोणत्याही ऑब्जेक्टवरून क्लास वर्णन ऑब्जेक्टचा संदर्भ देखील मिळवू शकता, कारण प्रत्येक ऑब्जेक्टची getClass()पद्धत असते, जी त्याला क्लासकडून प्राप्त होते Object.

उदाहरणे:

कोड नोंद
Class a = "Hello".getClass();
समान ऑब्जेक्टString.class
Class b = new Integer().getClass();
समान ऑब्जेक्टInteger.class
Class c = Boolean.TRUE.getClass();
समान ऑब्जेक्टBoolean.class