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

Java में फ़ील्ड

Cup.java में क्लास Cup के अंदर fill नाम का एक int फ़ील्ड रखें। Shelf.java में Cup c = new Cup(); से एक cup बनाएँ, c.fill = 3; से एक संख्या जमा करें, फिर System.out.println(c.fill); से वह फ़ील्ड प्रिंट करें। दोनों फ़ाइलें कंपाइल करें और java Shelf चलाएँ। स्क्रीन एक लाइन दिखाए: 3। फ़ील्ड डेटा उसी एक ऑब्जेक्ट पर रखती है। आप उस चर से पहुँचते हैं जो ऑब्जेक्ट का नाम है। ऑब्जेक्ट पर वह मान जमा करना और पढ़ना इसी पेज का पाठ है।

ऑब्जेक्ट पर डेटा की जगह

ऑब्जेक्ट पेज पर beep सिर्फ़ प्रिंट करता था। बाद के लिए कोई संख्या नहीं रखता था। फ़ील्ड क्लास के अंदर घोषित एक नाम है जिसमें हर ऑब्जेक्ट अपना मान रख सकता है। new ऑब्जेक्ट बनाने के बाद आप ऑब्जेक्ट चर से फ़ील्ड असाइन करते हैं, फिर प्रिंट कर सकते हैं।
पहले Cup.java बनाएँ। public class लाइन public class Cup है। यहाँ पुराना Chip या Badge क्लास नाम न छोड़ें। क्लास ब्रेसेस के अंदर एक फ़ील्ड लाइन लिखें: int fill;। इस पहले बॉक्स में कोई मेथड नहीं है। इस पेज पर Cup.java में main नहीं है। कंपाइल से पहले सेव करें।

Cup with fill field

java
public class Cup {
    int fill;
}

Shelf fill असाइन करता है, फिर प्रिंट करता है

उसी फ़ोल्डर में Shelf.java बनाएँ। public class लाइन public class Shelf है। main के अंदर क्रम से तीन लाइन लिखें: Cup c = new Cup();, फिर c.fill = 3;, फिर System.out.println(c.fill);। पहली लाइन ऑब्जेक्ट बनाती है। दूसरी उस ऑब्जेक्ट के fill में 3 जमा करती है। तीसरी जमा संख्या प्रिंट करती है।

Shelf sets and prints fill

java
public class Shelf {
    public static void main(String[] args) {
        Cup c = new Cup();
        c.fill = 3;
        System.out.println(c.fill);
    }
}

जिस फ़ोल्डर में दोनों फ़ाइलें हैं वहाँ से javac Cup.java Shelf.java चलाएँ। दोनों पूरा होने पर आप पहले Cup.java और फिर Shelf.java कंपाइल कर सकते हैं। जब कोष्ठक, ब्रेसेस और सेमीकोलन मिलते हैं तो javac अपनी कोई लाइन नहीं लिखता। फिर java Shelf चलाएँ — java Shelf.java नहीं, और java Cup भी नहीं। रन कमांड से .java अंत हटाएँ। वही क्लास शुरू करें जिसमें main है। वही कमांड Windows और macOS पर चलते हैं।
प्रोग्राम एक लाइन प्रिंट कर रुकना चाहिए: 3। आपसे टाइप नहीं माँगना चाहिए। अगर टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे तो किसी पुराने अभ्यास की nextLine कॉल अभी किसी फ़ाइल में है। वह कॉल हटाएँ और Shelf में ऊपर की तीन लाइनें रखें, Cup में fill फ़ील्ड के साथ।
रन को एक बार चलाकर देखें। Java Shelf.main से शुरू होता है। new Cup() एक ऑब्जेक्ट बनाता है और उसे c में रखता है। असाइनमेंट c.fill = 3 उस ऑब्जेक्ट के फ़ील्ड में 3 लिखता है। println(c.fill) वही फ़ील्ड पढ़कर 3 प्रिंट करता है। स्क्रीन पर संख्या ऑब्जेक्ट पर जमा मान है, "ok" जैसी हार्ड-कोडेड स्ट्रिंग प्रिंट नहीं।
फ़ील्ड नाम fill क्लास में एक बार घोषित होता है। Cup से बने हर ऑब्जेक्ट को उस नाम के लिए अपना स्लॉट मिलता है। जब आप c.fill लिखते हैं तो पहले ऑब्जेक्ट नाम देते हैं, फिर उस ऑब्जेक्ट पर स्लॉट। यही क्रम — ऑब्जेक्ट, फिर फ़ील्ड — इस पेज का आकार है।

क्लास, ऑब्जेक्ट और फ़ील्ड साथ-साथ

तीनों नाम एक छोटी टेबल में एक बार पढ़ें। इस पेज पर फ़ील्ड लाइन हमेशा एक ऑब्जेक्ट से होकर जाती है।

📊 class object field

Name What it is on this page
Cup the class / type in Cup.java
c one object built with new Cup()
c.fill the int stored on that object

बिना ऑब्जेक्ट के Cup.fill = 3; लिखना इस शुरुआती आकार से मेल नहीं खाता। फ़ील्ड new के बाद हर ऑब्जेक्ट की है। पहले बनाएँ, फिर चर से असाइन करें। परिणाम जमा किए बिना सिर्फ़ new Cup(); लिखने से भी fill के लिए कोई नाम नहीं बचता। Cup c = new Cup(); फिर c.fill = 3; रखें।
पुराना ऑब्जेक्ट डेमो फ़ोल्डर को उलझा सकता है। जो फ़ाइल अभी भी Chip क्लास के साथ c.beep(); कॉल करती है वह पिछला पाठ है। इस पेज के लिए Cup और Shelf तथा fill फ़ील्ड रखें। यहाँ beep की ज़रूरत नहीं।
अगर आप System.out.println(c); से खुद c प्रिंट करें तो स्क्रीन साफ़ 3 नहीं दिखाएगी। डिफ़ॉल्ट ऑब्जेक्ट टेक्स्ट छपता है। जमा संख्या देखने के लिए c.fill प्रिंट करें।

दो cup अलग-अलग fill रखते हैं

आप Cup से दो ऑब्जेक्ट बना सकते हैं। हर एक का अपना fill है। एक बदलने से दूसरा नहीं बदलता।
Shelf में आप Cup a = new Cup(); और Cup b = new Cup(); लिख सकते हैं, फिर a.fill = 2; और b.fill = 9;, फिर a.fill और b.fill प्रिंट करें। javac Cup.java Shelf.java और java Shelf के बाद स्क्रीन एक लाइन पर 2 और अगली पर 9 दिखाए। दोनों ऑब्जेक्ट वह क्लास टेक्स्ट साझा करते हैं जो fill घोषित करता है, पर हर ऑब्जेक्ट अपनी संख्या रखता है।
अगर आप दो अलग संख्याएँ चाहते थे पर दोनों प्रिंट एक ही मान दिखाएँ तो जाँचें कि आपने दोनों फ़ील्ड असाइन किए और Cup b = a; नहीं लिखा। वह लाइन b को a वाले ही ऑब्जेक्ट से जोड़ती है, इसलिए दोनों नाम एक fill साझा करते हैं। इस पेज पर दो अलग fill चाहिए तो दो new Cup() एक्सप्रेशन लिखें।
उस अभ्यास के लिए तीसरे बॉक्स्ड प्रोग्राम की ज़रूरत नहीं। Shelf सावधानी से संपादित करें, फिर कंपाइल करें और फिर चलाएँ। फिर चाहें तो क्विज़ का पहला आकार रखने के लिए सिंगल-cup बॉक्स वापस ला सकते हैं।

कंस्ट्रक्टर बाद में क्या जोड़ेंगे

यह पेज new के बाद अलग लाइन से फ़ील्ड असाइन करता है: c.fill = 3;। बाद का पेज — कंस्ट्रक्टर — दिखाएगा कि ऑब्जेक्ट बनते समय शुरुआती मान कैसे सेट करें। यहाँ सादे फ़ील्ड और new के बाद असाइनमेंट पर रहें। इस पेज पर कंस्ट्रक्टर मेथड न गढ़ें।
जिन फ़ील्ड को आप कभी असाइन नहीं करते उनके डिफ़ॉल्ट मान होते हैं: एक int फ़ील्ड 0 से शुरू होती है। किसी असाइनमेंट से पहले c.fill प्रिंट करें तो स्क्रीन 0 दिखा सकती है। यह पेज फिर भी वही असाइनमेंट सिखाता है जो आप लिखते हैं, इसलिए मुख्य डेमो में प्रिंट से पहले c.fill = 3; रखें।
अगर Shelf.java कंपाइल करते समय javac सिंबल Cup न पाए तो जाँचें कि Cup.java Shelf.java के बगल में है और क्लास लाइन public class Cup है। अगर आप 3 चाहते थे पर स्क्रीन 0 दिखाए तो असाइनमेंट लाइन गायब हो सकती है या प्रिंट के बाद चल रही हो — c.fill = 3; को println(c.fill) के ऊपर रखें।

कंस्ट्रक्टर से पहले

आप Cup के अंदर int fill; घोषित कर सकते हैं, Cup c = new Cup(); बना सकते हैं, c.fill = 3; असाइन कर सकते हैं, और Shelf से c.fill प्रिंट कर सकते हैं। दोनों फ़ाइलें कंपाइल करें और java Shelf चलाएँ। स्क्रीन 3 दिखाती है। दो ऑब्जेक्ट दो अलग fill रख सकते हैं। अगला पेज कंस्ट्रक्टर है, जहाँ आप new के ऑब्जेक्ट बनाने के क्षण पर मान सेट करना शुरू करते हैं।

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

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

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

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

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

📝 निर्देश

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