Follow Us
माध्यम चुनें / Select Medium:
Eng (English) Hindi (हिन्दी)
ICSE • कक्षा X • Information Technology • अध्याय 2
अनुमानित समय: 45 Mins
प्रगति: अध्ययनरत

सभी संगणनाओं के आधार के रूप में वर्ग (Class as the Basis of all Computation)

जावा में मूलभूत कम्प्यूटेशनल इकाइयों के रूप में कक्षाओं और वस्तुओं में महारत हासिल करना। ऑब्जेक्ट स्थिति और व्यवहार, ऑब्जेक्ट फ़ैक्टरी के रूप में क्लास और उपयोगकर्ता-परिभाषित डेटा प्रकार, वेरिएबल स्कोप (उदाहरण, स्थिर, स्थानीय), हीप और स्टैक मेमोरी आर्किटेक्चर, ऑब्जेक्ट जीवनचक्र, और पूर्ण ICSE क्लास डिज़ाइन पैटर्न की खोज करता है।

यह अध्याय क्यों महत्वपूर्ण है

जावा में मूलभूत कम्प्यूटेशनल इकाइयों के रूप में कक्षाओं और वस्तुओं में महारत हासिल करना। ऑब्जेक्ट स्थिति और व्यवहार, ऑब्जेक्ट फ़ैक्टरी के रूप में क्लास और उपयोगकर्ता-परिभाषित डेटा प्रकार, वेरिएबल स्कोप (उदाहरण, स्थिर, स्थानीय), हीप और स्टैक मेमोरी आर्किटेक्चर, ऑब्जेक्ट जीवनचक्र, और पूर्ण ICSE क्लास डिज़ाइन पैटर्न की खोज करता है।

अध्याय रूपरेखा एवं प्रगति

1 1। वस्तुएँ और वर्ग: अवस्था, व्यवहार...
2 2. उपयोगकर्ता-परिभाषित समग्र डेटा प...
3 3. परिवर्तनीय वर्गीकरण: उदाहरण, वर्...
4 4. मेमोरी आवंटन: स्टैक बनाम हीप और...
5 5. डॉट ऑपरेटर (.) और सदस्य एक्सेस म...
6 6. किसी वस्तु और कचरा संग्रहण का जी...
7 7. संपूर्ण आईसीएसई बोर्ड कक्षा डिज़...
8 8. आईसीएसई क्लास डिज़ाइन ब्लूप्रिंट...

सम्पूर्ण सैद्धांतिक एवं वैचारिक अध्ययन

1। वस्तुएँ और वर्ग: अवस्था, व्यवहार और वस्तु फ़ैक्टरी प्रतिमान

मौलिक अवधारणाएँ
प्राथमिक कम्प्यूटेशनल इकाई के रूप में वस्तु:

जावा में, गणना पूरी तरह से वस्तुओं के इर्द-गिर्द घूमती है। एक वस्तु एक वास्तविक दुनिया की इकाई या अमूर्त अवधारणा है जिसमें तीन सर्वोत्कृष्ट विशेषताएं होती हैं:

  • राज्य (विशेषताएँ / डेटा सदस्य): किसी भी समय वस्तु द्वारा धारण किए गए आंतरिक गुण, विशेषताएँ या मूल्य। खाता ऑब्जेक्ट के लिए, स्थिति में खाता संख्या, धारकनाम, और शेष.
  • शामिल हैं
  • व्यवहार (कार्य / सदस्य विधियाँ): संचालन, परिवर्तन, या क्रियाएँ जो कोई वस्तु कर सकती है या उस पर की गई है। खाता के लिए, व्यवहार में जमा(), निकासी(), और checkBalance().
  • शामिल हैं
  • पहचान (मेमोरी एड्रेस): एक अद्वितीय, सिस्टम-स्तरीय पहचान जो ऑब्जेक्ट को मेमोरी में अन्य सभी ऑब्जेक्ट से अलग करती है, भले ही दो ऑब्जेक्ट में समान स्थिति मान हों।
एक वस्तु फैक्टरी के रूप में वर्ग (ब्लूप्रिंट):

एक वर्ग एक अमूर्त टेम्पलेट, ब्लूप्रिंट, या विनिर्देश है जिससे अलग-अलग वस्तुओं का निर्माण किया जाता है। जिस प्रकार एक वास्तुशिल्प खाका किसी भौतिक आश्रय के बिना घर के आयामों और संरचना को परिभाषित करता है, उसी प्रकार एक वर्ग वास्तविक डेटा के लिए स्मृति आवंटित किए बिना क्षेत्रों और विधियों को परिभाषित करता है जब तक कि कोई वस्तु चालू न हो जाए। इसलिए, एक वर्ग को "ऑब्जेक्ट फ़ैक्टरी".

के रूप में प्रसिद्ध किया जाता है

2. उपयोगकर्ता-परिभाषित समग्र डेटा प्रकार के रूप में वर्ग

समग्र डेटा प्रकार
आदिम बनाम उपयोगकर्ता-परिभाषित समग्र प्रकार:

जबकि जावा 8 अंतर्निहित आदिम डेटा प्रकार प्रदान करता है (जैसे int, double, char), वास्तविक दुनिया प्रणालियों को कई संबंधित विशेषताओं के संयोजन वाली जटिल संरचनाओं की आवश्यकता होती है। एक वर्ग उपयोगकर्ता-परिभाषित डेटा प्रकार (यूडीटी) या समग्र प्रकार के रूप में कार्य करता है।

मानदंड आदिम डेटा प्रकार उपयोगकर्ता-परिभाषित वर्ग प्रकार
परिभाषा जावा कोर भाषा विनिर्देश में निर्मित। सॉफ़्टवेयर डेवलपर द्वारा डिज़ाइन और परिभाषित।
मेमोरी स्टोरेज सीधे रनटाइम कॉल स्टैक पर संग्रहीत; वास्तविक बिट मान रखता है. संदर्भ स्टैक पर रहता है; वास्तविक वस्तु विशेषताएँ हीप पर रहती हैं।
रचना परमाणु; छोटी इकाइयों में विघटित नहीं किया जा सकता. समग्र; कई आदिम और संदर्भ प्रकारों को एक साथ बंडल करता है।
डिफ़ॉल्ट मान 0, 0.0, false, '\u0000'. null (कोई आवंटित हीप मेमोरी नहीं दर्शाता है).
विधि मंगलाचरण विधियों को लागू नहीं किया जा सकता (कोई डॉट ऑपरेटर नहीं). डॉट ऑपरेटर के माध्यम से सदस्य विधियों को लागू कर सकते हैं (obj.method()).

3. परिवर्तनीय वर्गीकरण: उदाहरण, वर्ग (स्थैतिक) और स्थानीय चर

परिवर्तनीय वास्तुकला
जावा में वेरिएबल के तीन स्तर:

परिवर्तनीय दायरे, जीवनकाल और भंडारण स्थान को समझना आईसीएसई कंप्यूटर अनुप्रयोगों में सबसे अधिक बार परीक्षण की जाने वाली अवधारणाओं में से एक है।

द्वारा नष्ट कर दिया गया
विशेषता इंस्टेंस वेरिएबल्स (गैर-स्थैतिक) वर्ग चर (स्थैतिक) स्थानीय चर
घोषणा स्थान कक्षा के अंदर, सभी विधियों के बाहर। क्लास के अंदर, बाहरी तरीके, स्टैटिक कीवर्ड के साथ। एक विधि, कंस्ट्रक्टर, या ब्लॉक के अंदर {}.
मेमोरी लोकेशन हीप मेमोरी (ऑब्जेक्ट ब्लॉक के अंदर). वर्ग/विधि क्षेत्र (मेटास्पेस). कॉल स्टैक मेमोरी (विधि फ़्रेम).
जीवनकाल/अवधि जब ऑब्जेक्ट new के माध्यम से बनाया जाता है; GC.जब क्लास को जेवीएम में लोड किया जाता है तो बनाया जाता है; प्रोग्राम से बाहर निकलने पर नष्ट कर दिया गया. विधि मंगलाचरण पर निर्मित; विधि बाहर निकलने पर नष्ट हो जाता है।
डिफ़ॉल्ट आरंभीकरण डिफ़ॉल्ट मानों के लिए स्वचालित रूप से प्रारंभ किया गया (0, शून्य, गलत). स्वचालित रूप से डिफ़ॉल्ट मान प्रारंभ किया गया। कोई डिफ़ॉल्ट आरंभीकरण; पढ़ने से पहले प्रारंभ किया जाना चाहिए!
मेमोरी में प्रतियां प्रति तात्कालिक वस्तु पर एक स्वतंत्र प्रति। बिल्कुल सभी वस्तुओं द्वारा साझा की गई एक प्रति। प्रति सक्रिय विधि मंगलाचरण सूत्र की एक प्रति।

4. मेमोरी आवंटन: स्टैक बनाम हीप और 'नया' ऑपरेटर

मेमोरी आर्किटेक्चर
वस्तु तात्कालिकता की शारीरिक रचना:

क्लासिक घोषणा और तात्कालिकता कथन पर विचार करें:

छात्र s1 = नया विद्यार्थी();

यह एकल कथन तीन सिंक्रनाइज़ मेमोरी घटनाओं को ट्रिगर करता है:

  1. घोषणा (छात्र s1;): कॉल स्टैक पर s1 नामक एक संदर्भ चर आवंटित करता है। इस स्तर पर, s1 में कोई पता नहीं है (यह null का मूल्यांकन करता है)।
  2. डायनामिक आवंटन (new): new कीवर्ड Student वर्ग के सभी इंस्टेंस वेरिएबल के लिए आवश्यक सटीक बाइट आकार की गणना करता है और Heap पर एक सन्निहित मेमोरी ब्लॉक आवंटित करता है। यह इस ब्लॉक का 64-बिट हेक्साडेसिमल मेमोरी पता लौटाता है।
  3. प्रारंभिकरण (छात्र()): नए आवंटित हीप फ़ील्ड को डिफ़ॉल्ट या उपयोगकर्ता-निर्दिष्ट प्रारंभिक मानों के साथ पॉप्युलेट करते हुए कंस्ट्रक्टर निष्पादित किया जाता है।
  4. असाइनमेंट (=): लौटाया गया हीप मेमोरी पता स्टैक पर संदर्भ चर s1 को सौंपा गया है।
NullPointerException ट्रैप: एक अप्रारंभीकृत संदर्भ (उदाहरण के लिए, Student s; s.display();) के माध्यम से एक इंस्टेंस वेरिएबल या विधि तक पहुंचने का प्रयास करने से घातक रनटाइम NullPointerException होता है क्योंकि संदर्भ मेमोरी एड्रेस शून्य की ओर इंगित करता है।

5. डॉट ऑपरेटर (.) और सदस्य एक्सेस मैकेनिक्स

सदस्य पहुंच
सिंटेक्स और डॉट ऑपरेटर की भूमिका:

डॉट ऑपरेटर (.) जावा में सदस्य एक्सेस ऑपरेटर है। यह स्टैक पर एक संदर्भ चर और हीप ऑब्जेक्ट के अंदर रहने वाले ठोस डेटा फ़ील्ड या सदस्य विधियों के बीच एक डीरेफ़रेंस लिंक स्थापित करता है।

// इंस्टेंस वेरिएबल्स तक पहुंच:
s1.name = "आरव शर्मा";
s1.अंक = 94.5;

// सदस्य विधियों का आह्वान:
s1.गणनाग्रेड();
s1.displayReport();
क्लास नाम के माध्यम से स्थिर सदस्य पहुंच:

क्योंकि स्थैतिक चर और स्थैतिक विधियाँ किसी व्यक्तिगत वस्तु के बजाय संपूर्ण वर्ग से संबंधित हैं, उन्हें किसी वस्तु संदर्भ के बजाय वर्ग नाम का उपयोग करके सीधे लागू किया जाना चाहिए:

// अनुशंसित सर्वोत्तम अभ्यास:
छात्र.स्कूलनाम = "सेंट जेवियर्स स्कूल";
डबल रूट = Math.sqrt(144.0); //गणित कक्षा का नाम है!

6. किसी वस्तु और कचरा संग्रहण का जीवन चक्र

वस्तु जीवनचक्र
किसी वस्तु के जीवन के चार चरण:
  1. घोषणा: स्टैक पर एक वैरिएबल नाम को क्लास प्रकार से बांधना।
  2. इंस्टैंटिएशन: new ऑपरेटर का उपयोग करके हीप मेमोरी में ऑब्जेक्ट का भौतिक निर्माण।
  3. प्रारंभीकरण: इंस्टेंस फ़ील्ड्स को सार्थक स्थिति निर्दिष्ट करने के लिए कंस्ट्रक्टरों का निष्पादन।
  4. विनाश और कचरा संग्रहण: जब कोई वस्तु किसी भी सक्रिय संदर्भ चर (उदाहरण के लिए, s1 = null; या पुन: असाइनमेंट s1 = s2;) द्वारा पहुंच योग्य नहीं होती है, तो यह कचरा संग्रहण (GC) के लिए पात्र हो जाती है। JVM का स्वचालित कचरा संग्रहकर्ता समय-समय पर अनाथ हीप मेमोरी को पुनः प्राप्त करता है।

7. संपूर्ण आईसीएसई बोर्ड कक्षा डिज़ाइन ब्लूप्रिंट: छात्र रिपोर्ट कार्ड

बोर्ड क्लास डिज़ाइन
मॉडल प्रोग्राम 1: विधियों के साथ पूर्ण क्लास आर्किटेक्चर
आयात java.util.Scanner;

सार्वजनिक वर्ग छात्र {
    // 1. इंस्टेंस वेरिएबल्स (डेटा सदस्य)
    निजी स्ट्रिंग नाम;
    प्राइवेट इंट रोलनंबर;
    निजी दोहरे अंक1, अंक2, अंक3;
    निजी दोहरा कुल, औसत;
    निजी चार ग्रेड;

    // 2. डेटा इनपुट करने के लिए सदस्य विधि
    सार्वजनिक शून्य स्वीकार() {
        स्कैनर एससी = नया स्कैनर (System.in);
        System.out.print ("छात्र का नाम दर्ज करें:");
        नाम = sc.nextLine();
        System.out.print('रोल नंबर दर्ज करें:');
        रोलनंबर = sc.nextInt();
        System.out.print('3 विषयों में अंक दर्ज करें:');
        मार्क्स1 = एससी.नेक्स्टडबल();
        मार्क्स2 = एससी.नेक्स्टडबल();
        मार्क्स3 = एससी.नेक्स्टडबल();
    }

    // 3. परिणामों की गणना करने के लिए सदस्य विधि
    सार्वजनिक शून्य गणना() {
        कुल = अंक1 + अंक2 + अंक3;
        औसत = कुल / 3.0;
        यदि (औसत>=90) ग्रेड = 'ए';
        अन्यथा यदि (औसत >= 75) ग्रेड = 'बी';
        अन्यथा यदि (औसत>=60) ग्रेड = 'सी';
        अन्यथा यदि (औसत>=40) ग्रेड = 'डी';
        अन्य ग्रेड = 'एफ';
    }

    // 4. स्वरूपित आउटपुट प्रदर्शित करने के लिए सदस्य विधि
    सार्वजनिक शून्य प्रदर्शन() {
        System.out.println(''----- छात्र रिपोर्ट कार्ड -----');
        System.out.println ("रोल नंबर:" + रोल नंबर);
        System.out.println('नाम :' + नाम);
        System.out.println('कुल :' + कुल + '/300');
        System.out.println('औसत :' + औसत + '%');
        System.out.println('ग्रेड :' + ग्रेड);
    }

    // 5. ऑब्जेक्ट को इंस्टेंट करने की मुख्य विधि
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        छात्र ओबीजे = नया छात्र(); // वस्तु निर्माण
        obj.स्वीकार();                // डॉट ऑपरेटर के माध्यम से तरीकों को लागू करना
        obj.compute();
        obj.display();
    }
}

8. आईसीएसई क्लास डिज़ाइन ब्लूप्रिंट: वाणिज्यिक इलेक्ट्रिक बिल कैलकुलेटर

कमर्शियल क्लास डिज़ाइन
मॉडल प्रोग्राम 2: वास्तविक-विश्व टैरिफ गणना कक्षा
आयात java.util.Scanner;

सार्वजनिक श्रेणी इलेक्ट्रिक बिल {
    निजी स्ट्रिंग n;      // उपभोक्ता का नाम
    निजी पूर्णांक इकाइयाँ;     // उपभोग की गई इकाइयाँ
    निजी दोहरा बिल;   // बिल राशि

    सार्वजनिक शून्य स्वीकार() {
        स्कैनर इन = नया स्कैनर (System.in);
        System.out.print ("उपभोक्ता नाम दर्ज करें:");
        n = in.nextLine();
        System.out.print('उपभोग की गई इकाइयाँ दर्ज करें:');
        इकाइयाँ = in.nextInt();
    }

    सार्वजनिक शून्य गणना() {
        // स्लैब टैरिफ तर्क
        यदि (इकाइयाँ <= 100) {
            bill = units * 2.0;
        } else if (units <= 300) {
            bill = (100 * 2.0) + ((units - 100) * 3.0);
        } else {
            bill = (100 * 2.0) + (200 * 3.0) + ((units - 300) * 5.0);
            // Surcharge of 2.5% if units exceed 300
            double surcharge = bill * 0.025;
            bill += surcharge;
        }
    }

    public void print() {
        System.out.println("=================================");
        System.out.println("ELECTRICITY CONSUMPTION INVOICE");
        System.out.println("Consumer Name  : " + n);
        System.out.println("Units Consumed : " + units);
        System.out.println("Net Payable    : Rs. " + bill);
        System.out.println("=================================");
    }

    public static void main(String[] args) {
        ElectricBill eb = new ElectricBill();
        eb.accept();
        eb.calculate();
        eb.print();
    }
}

सामान्य गलतियाँ एवं परीक्षक के जाल (Examiner Traps)

सामान्य भ्रम / गलत उत्तर

किसी स्थानीय वेरिएबल को स्पष्ट रूप से प्रारंभ करने से पहले पढ़ना

सही वैज्ञानिक तथ्य

स्थानीय वेरिएबल्स को डिफ़ॉल्ट मान प्राप्त नहीं होते हैं। एक अप्रारंभीकृत स्थानीय चर का उपयोग करने का प्रयास एक संकलन-समय त्रुटि का कारण बनता है: 'वैरिएबल प्रारंभ नहीं किया गया हो सकता है'।

सामान्य भ्रम / गलत उत्तर

किसी ऑब्जेक्ट संदर्भ के बिना स्थैतिक मुख्य() से सीधे गैर-स्थैतिक तरीकों को कॉल करना

सही वैज्ञानिक तथ्य

गैर-स्थैतिक उदाहरण विधियों के लिए किसी ऑब्जेक्ट की आवश्यकता होती है। आपको कक्षा को इंस्टेंट करना होगा ('छात्र s = नया छात्र();') और डॉट ऑपरेटर ('s.display();') के माध्यम से प्रारंभ करना होगा।

सामान्य भ्रम / गलत उत्तर

मानना ​​कि एक वर्ग घोषणा उदाहरण डेटा के लिए मेमोरी आवंटित करती है

सही वैज्ञानिक तथ्य

एक कक्षा केवल एक ब्लूप्रिंट है। उदाहरण के लिए डेटा की मेमोरी केवल तभी आवंटित की जाती है जब 'नए' ऑपरेटर को रनटाइम पर निष्पादित किया जाता है।

सामान्य भ्रम / गलत उत्तर

क्लास नाम के बजाय ऑब्जेक्ट संदर्भ के माध्यम से स्थिर चर को आमंत्रित करना

सही वैज्ञानिक तथ्य

कानूनी होते हुए भी, ऑब्जेक्ट संदर्भों के माध्यम से स्थिर सदस्यों को कॉल करना खराब अभ्यास है। स्थिर सदस्यों तक हमेशा कक्षा के नाम (उदाहरण के लिए, 'Student.schoolName') के माध्यम से पहुंचें।

आर्किटेक्चरल ब्लूप्रिंट: सभी गणनाओं के आधार के रूप में क्लास

ICSE Class 10 Java : Class Blueprint & Object Memory Architecture Class : The Abstract Blueprint (Factory) • Definition: User-defined composite data type; template for objects. • State (Attributes / Data Members): Instance variables (e.g. name, rollNo, marks). • Behaviour (Member Methods): Functions operating on state (e.g. input(), calculate(), display()). Memory: Exists in Method Area / Metaspace. new Object : Concrete Instance (Heap Memory) • Instantiation: Student s1 = new Student(); • Stack Reference: s1 holds 64-bit memory address pointer on Stack. • Heap Allocation: Distinct memory block allocated for instance variables. Dot Operator (.): s1.calculate(); calls method. Variable Scope & Memory Allocation Architecture • Instance Variables: Declared inside class, outside methods. Allocated in HEAP when object is instantiated; unique to each object. • Class (Static) Variables: Declared with static keyword. Single copy shared across ALL objects in Class Memory. • Local Variables: Declared inside method/block. Allocated on STACK; created upon method entry, destroyed upon exit.

अध्याय का सार संक्षेप एवं 10 मुख्य निष्कर्ष

मुख्य बिंदु 1
A क्लास एक उपयोगकर्ता-परिभाषित समग्र ब्लूप्रिंट (फ़ैक्टरी) है जो स्थिति और व्यवहार को परिभाषित करता है; एक वस्तु उस वर्ग का एक ठोस, ठोस उदाहरण है।
मुख्य बिंदु 2
एक वस्तु में तीन मूलभूत विशेषताएं होती हैं: स्थिति (डेटा विशेषताएँ), व्यवहार (सदस्य विधियाँ), और पहचान (अद्वितीय मेमोरी पता)।
मुख्य बिंदु 3
कक्षाएं उपयोगकर्ता-परिभाषित डेटा प्रकार (समग्र प्रकार) के रूप में कार्य करती हैं, जो प्रोग्रामर को विषम आदिम प्रकारों को एक एकल वैचारिक इकाई में समूहित करने की अनुमति देती हैं।
मुख्य बिंदु 4
`new` ऑपरेटर गतिशील रूप से ऑब्जेक्ट के इंस्टेंस वेरिएबल के लिए हीप पर मेमोरी आवंटित करता है और उपयुक्त कंस्ट्रक्टर को आमंत्रित करता है।
मुख्य बिंदु 5
`Student s;` के रूप में घोषित एक संदर्भ चर स्टैक पर रहता है और मेमोरी एड्रेस पॉइंटर्स को संग्रहीत करता है; यह `new` के माध्यम से प्रारंभ होने तक `null` रहता है।
मुख्य बिंदु 6
इंस्टेंस वैरिएबल एक व्यक्तिगत ऑब्जेक्ट से संबंधित होते हैं और इन्स्टेन्शियेशन पर डिफ़ॉल्ट मान प्राप्त करते हैं (उदाहरण के लिए, संख्यात्मक के लिए 0, संदर्भ के लिए शून्य, बूलियन के लिए गलत)।
मुख्य बिंदु 7
स्टेटिक (वर्ग) चर `static` कीवर्ड के साथ घोषित किए जाते हैं; एक एकल मेमोरी कॉपी कक्षा के सभी उदाहरणों द्वारा साझा की जाती है।
मुख्य बिंदु 8
स्थानीय चर एक विधि ब्लॉक के भीतर परिभाषित किए जाते हैं, केवल स्टैक फ्रेम पर विधि निष्पादन के दौरान रहते हैं, और उपयोग से पहले स्पष्ट रूप से प्रारंभ किया जाना चाहिए।
मुख्य बिंदु 9
डॉट ऑपरेटर (`.`) जावा में सदस्य एक्सेस ऑपरेटर है, जिसका उपयोग इंस्टेंस वेरिएबल्स (`obj.field`) को संदर्भित करने और तरीकों को लागू करने (`obj.method()`) के लिए किया जाता है।
मुख्य बिंदु 10
जावा में कचरा संग्रह स्वचालित रूप से पृष्ठभूमि में चलता है, जिससे गैर-संदर्भित वस्तुओं द्वारा कब्जा की गई हीप मेमोरी मुक्त हो जाती है, जिनकी संदर्भ संख्या शून्य हो जाती है।

स्व-मूल्यांकन अभ्यास (Check Your Understanding)

मूल वैचारिक स्पष्टता की जांच के लिए नैदानिक प्रश्न। पहले स्वयं हल करें, फिर उत्तर देखें।

1
किसी वर्ग को 'ऑब्जेक्ट फ़ैक्टरी' और 'समग्र उपयोगकर्ता-परिभाषित डेटा प्रकार' के रूप में क्यों जाना जाता है?
उत्तर एवं व्याख्या देखें
उत्तर: एक वर्ग को 'ऑब्जेक्ट फ़ैक्टरी' कहा जाता है क्योंकि यह एक वास्तुशिल्प टेम्पलेट या ब्लूप्रिंट के रूप में कार्य करता है जिससे समान संरचनात्मक क्षेत्रों और व्यवहारों के साथ किसी भी संख्या में अलग, ठोस ऑब्जेक्ट उदाहरणों का निर्माण किया जा सकता है। इसे 'समग्र उपयोगकर्ता-परिभाषित डेटा प्रकार' कहा जाता है क्योंकि यह डेवलपर्स को कस्टम उच्च-स्तरीय डेटा प्रकार बनाने में सक्षम बनाता है जो विभिन्न आदिम प्रकारों (पूर्णांक, फ़्लोटिंग-पॉइंट नंबर, वर्ण) और संदर्भ प्रकारों को वास्तविक दुनिया के व्यापार मॉडल का प्रतिनिधित्व करने वाली एकीकृत इकाई में जोड़ता है।
2
मेमोरी आवंटन के संबंध में ऑब्जेक्ट और क्लास के बीच अंतर करें।
उत्तर एवं व्याख्या देखें
उत्तर: A क्लास एक अमूर्त सॉफ्टवेयर निर्माण है; एक क्लास घोषित करने से डेटा फ़ील्ड के लिए हीप मेमोरी आवंटित नहीं होती है (यह केवल क्लास परिभाषाओं और स्थिर सदस्यों के लिए जेवीएम मेटास्पेस/मेथड एरिया में जगह घेरती है)। ऑब्जेक्ट रनटाइम पर गतिशील रूप से बनाई गई एक ठोस भौतिक इकाई है; 'नए क्लासनाम ()' को निष्पादित करने से उस ऑब्जेक्ट के विशिष्ट इंस्टेंस वेरिएबल्स को संग्रहीत करने के लिए हीप पर गतिशील रूप से एक अद्वितीय, सन्निहित मेमोरी ब्लॉक आवंटित किया जाता है।
3
जावा में ऑब्जेक्ट निर्माण के दौरान 'नए' ऑपरेटर की क्या भूमिका है?
उत्तर एवं व्याख्या देखें
उत्तर: 'नया' ऑपरेटर गतिशील मेमोरी आवंटन करता है। यह निर्दिष्ट वर्ग के लिए आवश्यक हीप मेमोरी की सटीक मात्रा की गणना करता है, उस सन्निहित मेमोरी ब्लॉक को आवंटित करता है, डिफ़ॉल्ट मानों के साथ फ़ील्ड को आरंभ करता है, प्रारंभिक स्थिति सेट करने के लिए उपयुक्त क्लास कंस्ट्रक्टर को आमंत्रित करता है, और अंत में नए निर्मित हीप ऑब्जेक्ट के 64-बिट मेमोरी संदर्भ पते को स्टैक वेरिएबल में लौटाता है।
4
घोषणा, दायरे और डिफ़ॉल्ट के संदर्भ में इंस्टेंस वेरिएबल्स और स्थानीय वेरिएबल्स के बीच अंतर करें मान.
उत्तर एवं व्याख्या देखें
उत्तर:
  1. घोषणा: इंस्टेंस वेरिएबल सभी विधियों के बाहर क्लास बॉडी के भीतर घोषित किए जाते हैं; स्थानीय चर एक विशिष्ट विधि, कंस्ट्रक्टर या ब्लॉक के अंदर घोषित किए जाते हैं। 2. स्कोप और लाइफटाइम: इंस्टेंस वैरिएबल तब तक मौजूद रहते हैं जब तक कि हीप मेमोरी में ऑब्जेक्ट मौजूद रहता है; स्थानीय चर केवल तभी मौजूद होते हैं जब एनक्लोजिंग विधि स्टैक फ्रेम पर निष्पादित होती है। 3. डिफ़ॉल्ट मान: इंस्टेंस वेरिएबल स्वचालित रूप से भाषा डिफ़ॉल्ट (0, 0.0, गलत, शून्य) के लिए प्रारंभ किए जाते हैं; स्थानीय चर को कोई डिफ़ॉल्ट मान प्राप्त नहीं होता है और स्पष्ट आरंभीकरण से पहले पढ़ने पर संकलन-समय त्रुटियां होती हैं।

5
क्या होता है जब एक ऑब्जेक्ट संदर्भ चर को 'शून्य' असाइन किया जाता है?
उत्तर एवं व्याख्या देखें
उत्तर: किसी ऑब्जेक्ट संदर्भ को 'null' असाइन करना (उदाहरण के लिए, 's1 = null;') स्टैक पर संदर्भ चर और हीप पर मौजूद ऑब्जेक्ट के बीच पॉइंटर लिंक को अलग कर देता है। यदि कोई अन्य सक्रिय संदर्भ उस हीप ऑब्जेक्ट की ओर इंगित नहीं करता है, तो ऑब्जेक्ट अप्राप्य ('अनाथ') हो जाता है और जावा गारबेज कलेक्टर द्वारा स्वचालित मेमोरी डीलोकेशन के लिए पात्र हो जाता है।
6
एक स्थिर (वर्ग) चर एक गैर-स्थैतिक (आवृत्ति) चर से कैसे भिन्न होता है?
उत्तर एवं व्याख्या देखें
उत्तर: एक स्थिर चर ('स्थैतिक' कीवर्ड के साथ घोषित) वर्ग से ही संबंधित होता है; वेरिएबल की बिल्कुल एक प्रति मेमोरी (मेटास्पेस/मेथड एरिया में) में मौजूद होती है और उस क्लास के सभी इंस्टेंसेस में साझा की जाती है। एक ऑब्जेक्ट में स्थिर चर को संशोधित करने से अन्य सभी ऑब्जेक्ट प्रभावित होते हैं। इसके विपरीत, एक इंस्टेंस वैरिएबल एक व्यक्तिगत ऑब्जेक्ट से संबंधित होता है; प्रत्येक त्वरित वस्तु को हीप पर संग्रहीत अपनी स्वतंत्र, पृथक प्रति प्राप्त होती है।
7
जावा में डॉट ऑपरेटर (.) का उद्देश्य क्या है?
उत्तर एवं व्याख्या देखें
उत्तर: डॉट ऑपरेटर (.) जावा में सदस्य एक्सेस या डीरेफ़रेंसिंग ऑपरेटर है। यह एक प्रोग्राम को इंस्टेंस वेरिएबल्स (उदाहरण के लिए, 'ऑब्जेक्टRef.variableName') तक पहुंचने की अनुमति देता है और उस ऑब्जेक्ट से संबंधित सदस्य विधियों (उदाहरण के लिए, 'ऑब्जेक्टRef.methodName()') को आमंत्रित करता है जिसका पता संदर्भ चर द्वारा रखा जाता है।
8
जावा में कचरा संग्रह की अवधारणा को समझाएं। जावा को C++ डिलीट जैसे स्पष्ट मेमोरी डीलोकेशन ऑपरेटरों की आवश्यकता क्यों नहीं है?
उत्तर एवं व्याख्या देखें
उत्तर: गारबेज कलेक्शन JVM द्वारा निष्पादित एक स्वचालित पृष्ठभूमि मेमोरी प्रबंधन प्रक्रिया है। यह लगातार वस्तु की पहुंच योग्यता को ट्रैक करता है; जब किसी ऑब्जेक्ट के पास स्टैक से इसकी ओर इशारा करने वाला कोई सक्रिय संदर्भ नहीं रह जाता है, तो गारबेज कलेक्टर इसे मृत मेमोरी के रूप में पहचानता है और चुपचाप इसके हीप स्थान को पुनः प्राप्त कर लेता है। यह सामान्य C/C++ मेमोरी भ्रष्टाचार कमजोरियों जैसे मेमोरी लीक, डैंगलिंग पॉइंटर्स और डबल-फ्री त्रुटियों को समाप्त करता है।
अध्याय का अध्ययन पूर्ण हुआ?
अभ्यास के लिए तैयार?

ऑनलाइन CBT टेस्ट देकर तैयारी का मूल्यांकन करें

झारखण्ड बोर्ड परीक्षा पैटर्न पर आधारित बहुविकल्पीय प्रश्नों का ऑनलाइन टेस्ट दें। तुरंत परिणाम, समय विश्लेषण और प्रत्येक प्रश्न का विस्तृत हल प्राप्त करें।

AI अध्ययन मित्र

त्वरित शंका समाधान

सभी संगणनाओं के आधार के रूप में वर्ग (Class as the Basis of all Computation) में कोई संदेह या प्रश्न है? हमारे AI अध्ययन मित्र से तुरंत समझें।