"मैं आपको ऑब्जेक्ट इनिशियलाइज़ेशन के बारे में बताना चाहता हूँ। जब आप कोई ऑब्जेक्ट बनाते हैं, तो आपको उस स्थिति से बचने के लिए इसके वेरिएबल्स को प्रारंभिक मान निर्दिष्ट करने की आवश्यकता होती है, जहाँ आप किसी ऑब्जेक्ट तक पहुँचते हैं, जिसमें सही ढंग से काम करने के लिए आवश्यक जानकारी नहीं होती है।"
"आइए एक फाइल ऑब्जेक्ट पर विचार करें। एक फ़ाइल के लिए न्यूनतम आवश्यक जानकारी उसका नाम है। बिना नाम वाली फ़ाइल बनाना बेतुका होगा। "
"मान लीजिए कि हम फाइलों के साथ काम करने के लिए MyFile क्लास लिखते हैं। प्रत्येक वस्तु के लिए कौन सी जानकारी आवश्यक होगी?"
"ऑब्जेक्ट से जुड़ी फाइल का नाम?"
"यह सही है। ऐसा करने के लिए, हम अपनी कक्षा में इनिशियलाइज़ () विधि जोड़ते हैं। यह ऐसा दिखता है।"
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
…
}
"हमने मेथड को कॉल करके ऑब्जेक्ट के साथ काम करना संभव बनाने के लिए इनिशियलाइज़ मेथड जोड़ा है। हम इनिशियलाइज़ मेथड को कॉल करने के तुरंत बाद ऑब्जेक्ट के मेथड्स को कॉल कर सकते हैं। अगर हम किसी ऑब्जेक्ट के साथ काम नहीं कर सकते हैं, तो हम इसे अमान्य कहते हैं ; अन्यथा, हम कहते हैं कि वस्तु वैध है । इनिशियलाइज़ मेथड का मुख्य कार्य उन सभी डेटा को प्राप्त करना है जो किसी वस्तु को वैध बनाने के लिए आवश्यक हैं। "
"अच्छा ऐसा है।"
"अब हम अपने कार्य को कठिन बनाते हैं। या, दूसरे विचार पर, आसान। यह इस बात पर निर्भर करता है कि आप इसे कैसे देखते हैं। मान लीजिए कि हमारी कक्षा का उपयोग करने वाले प्रोग्रामर को इसके पूर्ण पथ के बजाय केवल फ़ाइल की निर्देशिका और संक्षिप्त नाम पास करना अधिक सुविधाजनक लगता है। प्रोग्रामर को ऐसा करने देने के लिए हम एक और इनिशियलाइज़ मेथड बना सकते हैं ( Java हमें समान नामों के साथ कई मेथड्स बनाने देता है )। यहाँ बताया गया है कि हमारी क्लास कैसी दिखेगी:"
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
public void initialize(String folder, String name)
{
this.filename = folder + name;
}
…
}
"एक और बात: हमें अक्सर वर्तमान फ़ाइल के बगल में एक फ़ाइल की अस्थायी प्रतिलिपि बनाने की आवश्यकता होती है।"
"क्या हम ऐसा करने के लिए कोई तरीका बना सकते हैं?"
"बिल्कुल। देखो।"
class MyFile
{
private String filename = null;
public void initialize(String name)
{
this.filename = name;
}
public void initialize(String folder, String name)
{
this.filename = folder + name;
}
// The filename will be stored in the same directory as file.
public void initialize(MyFile file, String name)
{
this.filename = file.getFolder() + name;
}
…
}
"और मैं इनमें से जितनी चाहे उतनी विधियाँ बना सकता हूँ?"
"ठीक है, कारण के भीतर। लेकिन तकनीकी रूप से बोलना, हाँ, जितने आप चाहते हैं।"
"मुझे प्रारंभिक विधि कब कॉल करनी है?"
"ऑब्जेक्ट बनाने के तुरंत बाद, इसे वैध बनाने के लिए।"
उदाहरण: |
---|
|
|
|
"यह getFolder () विधि क्या है?"
"हमने वास्तव में यहां कोड नहीं दिखाया है। यह एक ऐसी विधि का प्रतिनिधित्व करता है जो उस फ़ोल्डर के नाम के साथ एक स्ट्रिंग देता है जहां हमारी फ़ाइल संग्रहीत है।"
GO TO FULL VERSION