एक्सेस
क्लास Lid लिखें जिसमें निजी फ़ील्ड int seal, कंस्ट्रक्टर Lid(int n) जो seal = n; लगाए, और public मेथड int Read() जो seal लौटाए। Pine में Main रखें और Lid L = new Lid(9); से एक lid बनाएँ, फिर L.Read() लिखें। दोनों टाइप उसी शिक्षण फ़ाइल में रखें ताकि dotnet run सरल रहे। dotnet run से चलाएँ। स्क्रीन पर एक पंक्ति दिखनी चाहिए: 9। फ़ील्ड Lid के भीतर निजी रहती है। public मेथड वह रास्ता है जिससे Pine संख्या पाता है। शुरू करने वाली public क्लास का नाम Pine रखें।
सदस्य कौन देख सकता है
static पेज पर आपने क्लास नाम से Cup.Mark() बुलाया था। यहाँ नए शब्द private और public हैं। private फ़ील्ड अपनी क्लास के भीतर दिखती है। उसी फ़ाइल की दूसरी क्लासें — जिनमें Pine शामिल है — L.seal नहीं लिख सकतीं जब seal निजी हो। public मेथड फिर भी Pine से चल सकती है और छिपा मान लौटा सकती है।
Pine फ़ाइल खोलें। शुरू करने वाले क्लास का नाम Pine ही रहता है। यह पेज स्टार्टर का नाम नहीं बदलता। अगर Main में अभी भी केवल static डेमो का Cup.Mark(); बचा है तो हटा दें। बची Cup क्लास हटाएँ। बचा Jar हटाएँ। हर ReadLine पंक्ति हटाएँ। जो फ़ाइल रखते हैं वह टाइप की प्रतीक्षा नहीं करती।
Pine की ब्रेस के बाहर — अभी भी उसी फ़ाइल में — लिखें public class Lid। ब्रेस के भीतर घोषित करें private int seal;। कंस्ट्रक्टर लिखें Lid(int n) { seal = n; }। फिर लिखें public int Read() { return seal; }। इस पेज पर Lid में Main नहीं है। चलाने से पहले फ़ाइल सेव करें।
फ़ील्ड को private चाहिए ताकि Pine नाम से seal न छुए। मेथड को public चाहिए ताकि Pine Read बुला सके। रिटर्न टाइप int है क्योंकि Read संग्रहित संख्या कॉलर को देता है। मेथड बॉडी में return seal; रखें।
using System;
public class Lid
{
private int seal;
Lid(int n)
{
seal = n;
}
public int Read()
{
return seal;
}
}
Pine lid बनाता है और Read बुलाता है
Pine में public static void Main() रहता है। Main के भीतर क्रम से दो पंक्तियाँ लिखें: Lid L = new Lid(9);, फिर Console.WriteLine(L.Read());। कंस्ट्रक्टर 9 निजी फ़ील्ड में रखता है। L.Read() कॉल वही मान लौटाता है। लेखन उसे दिखाता है। इस पेज पर आप Cup.Mark(); नहीं लिखते। वह static पाठ था।
using System;
public class Pine
{
public static void Main()
{
Lid L = new Lid(9);
Console.WriteLine(L.Read());
}
}
public class Lid
{
private int seal;
Lid(int n)
{
seal = n;
}
public int Read()
{
return seal;
}
}
ऊपर से रखी फ़ाइल पढ़ें। using System; छोटे नाम तैयार करता है। public class Pine स्टार्टर है। public static void Main() वही जगह है जहाँ रनटाइम शुरू होता है। new Lid(9) एक lid बनाता है और seal में 9 रखता है। L.Read() कॉल उस ऑब्जेक्ट की public मेथड में जाती है। बॉडी seal लौटाती है, इसलिए 9 Main तक आता है। फिर Main रिटर्न मान लिखता है और स्क्रीन 9 दिखाती है।
dotnet run से चलाएँ। प्रोग्राम एक पंक्ति लिखकर रुक जाता है। टाइप की प्रतीक्षा नहीं करता। अगर dotnet run इंतज़ार करे तो फ़ाइल में ReadLine बचा है। वह पंक्ति हटाएँ और Pine में new Lid(9) तथा Console.WriteLine(L.Read()); रखें, Lid में private int seal और public int Read() के साथ। स्क्रीन 9 दिखाती है। अगर स्क्रीन 2 दिखाए तो बची Cup tally डेमो चल रही हो सकती है। अगर बिल्ड L.seal पर फेल हो तो आपने Main से निजी फ़ील्ड पढ़ने की कोशिश की — L.Read() पर जाएँ।
अगर seal private होने पर आप Console.WriteLine(L.seal); लिखें तो बिल्ड मना करती है। वही मना पाठ है। public द्वार रखें: L.Read()। अगर seal पर private न रखें तो इस सरल आकार में डिफ़ॉल्ट एक्सेस फिर भी Pine से ऐसे कंपाइल हो सकता है जैसा यह पेज सिखाना नहीं चाहता — जानबूझकर फ़ील्ड पर private लगाएँ।
static Cup और साधारण public फ़ील्ड से तुलना
static पेज पर static काम के बाद Cup.tally क्लास नाम से पहुँचा जा सकता था। यह पेज seal को Pine से छिपाता है और केवल Read खोलता है। बचा Cup.Mark(); Cup.Mark(); Console.WriteLine(Cup.tally); अलग पाठ है। इस पेज पर Lid, Pine और L.Read() रखें।
आप हर फ़ील्ड public कर Main से L.seal लिख सकते हैं। यह पाठ private चुनता है ताकि ऑब्जेक्ट स्टोरेज का मालिक हो और Pine मेथड से पूछे। अकेला Console.WriteLine(L); साफ़ 9 नहीं दिखाता। लौटी संख्या देखने के लिए Console.WriteLine(L.Read()); लिखें।
दो lid अलग निजी seal रखते हैं
हर new Lid(...) को अपना निजी seal मिलता है। आप Lid a = new Lid(3); और Lid b = new Lid(8); लिख सकते हैं, फिर a.Read() और b.Read() दोनों लिखें। private कीवर्ड ऑब्जेक्टों के बीच एक seal साझा नहीं करता। यह केवल दूसरी क्लासों को फ़ील्ड का नाम लिखने से रोकता है।
using System;
public class Pine
{
public static void Main()
{
Lid a = new Lid(3);
Lid b = new Lid(8);
Console.WriteLine(a.Read());
Console.WriteLine(b.Read());
}
}
public class Lid
{
private int seal;
Lid(int n)
{
seal = n;
}
public int Read()
{
return seal;
}
}
फिर dotnet run चलाएँ। स्क्रीन पर एक पंक्ति में 3 और अगली में 8 दिखना चाहिए। हर Read ने उस ऑब्जेक्ट का अपना निजी फ़ील्ड लौटाया। अगर दोनों पंक्तियाँ एक संख्या दिखाएँ तो जाँचें कि आपने अलग arguments के साथ दो new Lid(...) कॉल किए। अगर स्क्रीन अभी भी एक 9 दिखाए तो शायद आप एक-lid डेमो पर हैं — पहले चेकपॉइंट के लिए ठीक है; दूसरे चेक के लिए दो-lid फ़ाइल इस्तेमाल करें।
अगर बिल्ड Read पर शिकायत करे तो मेथड हेडर में public और int दोनों हैं यह पुष्टि करें। अगर Main अभी भी Cup.Mark() बुलाता है तो static बचत हटाएँ ताकि एक्सेस पाठ tally की जगह lid संख्याएँ दिखा सके।
namespaces के लिए क्या बचता है
यह पेज private और public इसलिए इस्तेमाल करता है ताकि एक क्लास फ़ील्ड छिपा सके और फिर भी मेथड से मान साझा करे। बाद का पेज — namespaces — टाइपों को नाम के तहत समूहित करता है ताकि बड़े प्रोग्राम व्यवस्थित रहें। यहाँ एक्सेस पर टिके रहें। इस पेज पर namespace लपेट न बनाएँ जब तक पहले से न जानते हों; पाठ का लक्ष्य फ़ील्ड पर private और Read पर public है।
Lid को Pine की ब्रेस के भीतर नेस्ट न करें। इस पेज पर दोनों क्लासें फ़ाइल में भाई-बहन बैठती हैं। अगर Pine कंपाइल करते समय Lid न मिले तो जाँचें public class Lid उसी फ़ाइल में है। अगर स्क्रीन 0 दिखाए तो कंस्ट्रक्टर में स्टोर गायब हो सकता है — Lid(int n) { seal = n; } रखें और new के बाद Read बुलाएँ।
आप private int seal; घोषित कर सकते हैं, Lid(int n) { seal = n; } और public int Read() { return seal; } लिख सकते हैं, और Pine.Main से Lid L = new Lid(9); चला कर L.Read() लिख सकते हैं। dotnet run से चलाएँ। स्क्रीन 9 दिखाती है। निजी फ़ील्ड Lid के भीतर रही। public मेथड ने संख्या Pine को दी। private को बंद दराज और Read को अंदर देखने की अनुमतित राह समझें। Pine वही दरवाज़ा है जो dotnet run से खुलता है। अगला पेज namespaces है, जहाँ टाइप समूह नाम के तहत बैठते हैं ताकि बड़ी फ़ाइलें साफ़ रहें।
फ़ील्ड पर private रखें। Read पर public रखें। कॉल L.Read() रखें, L.seal नहीं। ये तीन आदतें आगे बढ़ने से पहले इस पेज का चेकपॉइंट हैं। Main से बची Cup.Mark() डेमो बाहर रखें ताकि स्क्रीन गलती से tally न दिखाए।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी