लोड हो रहा है...

Java में इंस्टेंस मेथड

Jar.java में क्लास Jar लिखें जिसमें int फ़ील्ड fill हो, कंस्ट्रक्टर Jar(int n) जो fill = n; सेट करे, और इंस्टेंस मेथड void bump() जो fill = fill + 1; चलाए। Desk.java में Jar j = new Jar(3); से एक jar बनाएँ, j.bump(); बुलाएँ, फिर j.fill प्रिंट करें। दोनों फ़ाइलें कंपाइल करें और java Desk चलाएँ। स्क्रीन एक लाइन दिखाए: 4। मेथड उसी एक ऑब्जेक्ट पर चलती है और उसकी फ़ील्ड बदलती है। ऑब्जेक्ट वैरिएबल से मेथड बुलाना — यही इस पेज का पाठ है।

मेथड जो ऑब्जेक्ट की है

पहले की मेथड पेजों पर आप main से बिना आगे ऑब्जेक्ट के नाम बुलाते थे। यहाँ मेथड क्लास पर बैठी है, पर आप jar वैरिएबल से पहुँचते हैं: j.bump()। वह कॉल उसी jar की फ़ील्ड इस्तेमाल करती है जिसका नाम j है। दूसरा jar अपना fill रखेगा।
पहले Jar.java बनाएँ। public class लाइन public class Jar है। यहाँ पुराना Tin या Box क्लास नाम न छोड़ें। ब्रेसेस के अंदर int fill; घोषित करें। कंस्ट्रक्टर लिखें Jar(int n) { fill = n; } अलग नामों के साथ ताकि इस पेज को this न चाहिए। फिर इंस्टेंस मेथड लिखें:
void bump() { fill = fill + 1; }
Jar.java में main नहीं है। कंपाइल से पहले सेव करें। मेथड हेडर को void चाहिए क्योंकि bump प्रिंट के लिए मान नहीं लौटाता। कंस्ट्रक्टर में अभी भी void नहीं — वह अंतर साफ़ रखें।

Jar with bump method

java
public class Jar {
    int fill;

    Jar(int n) {
        fill = n;
    }

    void bump() {
        fill = fill + 1;
    }
}

Desk एक jar बनाता है और bump बुलाता है

उसी फ़ोल्डर में Desk.java बनाएँ। इसकी public class लाइन public class Desk है। main के अंदर क्रम से तीन लाइनें लिखें: Jar j = new Jar(3);, फिर j.bump();, फिर System.out.println(j.fill);। कंस्ट्रक्टर 3 जमा करता है। कॉल j.bump() एक जोड़ता है। प्रिंट नया मान दिखाता है।
Desk को वही क्लास रखें जिसमें main है। इस पाठ के लिए main को Jar के अंदर न डालें। अगर this पेज का बचा Lab फ़ाइल अभी फ़ोल्डर में है, इस पाठ के लिए java Lab न चलाएँ — Jar.java और Desk.java कंपाइल करने के बाद java Desk चलाएँ।

Desk one bump

java
public class Desk {
    public static void main(String[] args) {
        Jar j = new Jar(3);
        j.bump();
        System.out.println(j.fill);
    }
}

जिस फ़ोल्डर में दोनों फ़ाइलें हैं वहाँ से javac Jar.java Desk.java चलाएँ। दोनों पूरा होने पर आप पहले Jar.java और फिर Desk.java कंपाइल कर सकते हैं। जब कोष्ठक, ब्रेसेस और सेमीकोलन मिलते हैं तो javac अपनी कोई लाइन नहीं लिखता। फिर java Desk चलाएँ — java Desk.java नहीं, और java Jar भी नहीं। रन कमांड से .java अंत हटाएँ। वही क्लास शुरू करें जिसमें main है। वही कमांड Windows और macOS पर चलते हैं।
प्रोग्राम एक लाइन प्रिंट कर रुकना चाहिए: 4। आपसे टाइप नहीं माँगना चाहिए। अगर टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे तो किसी पुराने अभ्यास की nextLine कॉल अभी किसी फ़ाइल में है। वह कॉल हटाएँ और Desk में new Jar(3), j.bump() और प्रिंट रखें, Jar में bump के साथ।
रन को एक बार चलाकर देखें। Java Desk.main से शुरू होता है। एक्सप्रेशन new Jar(3) एक jar बनाता है और fill में 3 जमा करता है। कॉल j.bump() उसी ऑब्जेक्ट पर bump में प्रवेश करती है। बॉडी fill = fill + 1 लिखती है, इसलिए fill 4 हो जाता है। फिर main j.fill प्रिंट करता है और स्क्रीन 4 दिखाती है।
अगर आप बिना आगे j. के bump(); लिखें, इस आकार के main में javac मना करता है। इंस्टेंस मेथड को ऑब्जेक्ट चाहिए। अगर आप Jar.bump(); जैसे static कॉल लिखें, वह अगले पाठ का विचार है — इस पेज का नहीं। j.bump(); रखें।

this और सादे फ़ील्ड असाइन से तुलना

this पेज पर आप कंस्ट्रक्टर में मेल खाते नामों से फ़ील्ड जमा करते थे। वह अभी भी काम करता है। यह पेज ऐसी मेथड जोड़ता है जिसे आप बाद में, ऑब्जेक्ट बनने के बाद, बुला सकते हैं। बचा हुआ Tin t = new Tin(7); जिसमें this.size = size; हो अलग पाठ है। इस पेज के लिए Jar और Desk तथा j.bump(); रखें।
आप अभी भी main में j.fill = j.fill + 1; लिख सकते हैं। यह पाठ वह बदलाव bump में ले जाता है ताकि ऑब्जेक्ट खुद क्रिया ले जाए। सिर्फ़ j को System.out.println(j); से प्रिंट करने पर साफ़ 4 नहीं दिखता। जमा संख्या देखने के लिए j.fill प्रिंट करें।

एक jar पर दो bump

प्रिंट से पहले आप j.bump(); दो बार बुला सकते हैं। new Jar(3) से शुरू करें, एक bump से 4, दूसरा bump से 5, फिर प्रिंट। वह जाँच छोटे दूसरे Desk डेमो में समा जाती है।

Desk two bumps

java
public class Desk {
    public static void main(String[] args) {
        Jar j = new Jar(3);
        j.bump();
        j.bump();
        System.out.println(j.fill);
    }
}

फिर कंपाइल और चलाएँ: javac Jar.java Desk.java, फिर java Desk। स्क्रीन 5 दिखाए। हर bump कॉल उसी ऑब्जेक्ट पर चली और एक और जोड़ा। Jar k = j; लिखने से दूसरा ऑब्जेक्ट नहीं बनता — दो अलग fill चाहिए तो दो new Jar(...) कॉल करें। इस पेज पर एक jar पर दो bump काफ़ी हैं यह देखने के लिए कि मेथड दो बार चली।
अगर स्क्रीन अभी भी 3 दिखाए, शायद bump कॉल गायब हैं या main अभी भी उन्हें बुलाने से पहले प्रिंट करता है। अगर 7 या कोई और बचा नंबर दिखे, पुराना Tin डेमो अभी फ़ाइल में हो सकता है। new Jar(3) और bump कॉल रखें।

static के लिए क्या बचता है

यह पेज मेथड को ऑब्जेक्ट से बुलाता है: j.bump()। बाद का पेज — static — ऐसी मेथड और फ़ील्ड दिखाता है जो खुद क्लास नाम की होती हैं बिना आगे ऑब्जेक्ट के। यहाँ इंस्टेंस कॉल पर रहें। इस पेज पर static void bump() न गढ़ें जब तक पहले से न जानते हों; पाठ का लक्ष्य ऑब्जेक्ट पर कॉल है।
अगर Desk.java कंपाइल करते समय javac को Jar न मिले तो जाँचें कि Jar.java उसी फ़ोल्डर में है और क्लास लाइन public class Jar है। अगर स्क्रीन 0 दिखाए, कंस्ट्रक्टर में जमा न हो, या bump कभी न चले — प्रिंट से पहले Jar(int n) { fill = n; } और j.bump(); रखें।
जब फ़ोल्डर में अभी भी this पेज की Tin.java या Lab.java हों, उन्हें छोड़ दें या सिर्फ़ तभी हटाएँ जब वे आपकी कंपाइल कमांड उलझाएँ। इस पाठ की Jar और Desk जोड़ी कंपाइल करने के बाद java Desk चलाएँ।

static से पहले

आप int fill; घोषित कर सकते हैं, Jar(int n) { fill = n; } और void bump() { fill = fill + 1; } लिख सकते हैं, और Desk से Jar j = new Jar(3);, j.bump();, फिर j.fill प्रिंट चला सकते हैं। दोनों फ़ाइलें कंपाइल करें और java Desk चलाएँ। स्क्रीन 4 दिखाती है। इंस्टेंस मेथड उस ऑब्जेक्ट पर चली और उसकी फ़ील्ड बदली। अगला पेज static है, जहाँ कुछ सदस्य क्लास नाम के होते हैं बिना आगे ऑब्जेक्ट वैरिएबल की ज़रूरत के।
मेथड पर void रखें, कंस्ट्रक्टर पर नहीं। कॉल से पहले ऑब्जेक्ट रखें: j.bump();। प्रिंट j.fill पर रखें। आगे बढ़ने से पहले ये तीन आदतें इस पेज का चेकपॉइंट हैं।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
5
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी