Codegym यूनिवर्सिटी कोर्स के भाग के रूप में एक परामर्शदाता के साथ एक व्याख्यान स्निपेट। पूर्ण पाठ्यक्रम के लिए साइन अप करें।


"अब समय आ गया है कि मैं आपको कंस्ट्रक्टर के बारे में बताऊं। यह वास्तव में सरल अवधारणा है। प्रोग्रामर ने ऑब्जेक्ट बनाने और आरंभ करने के लिए एक शॉर्टहैंड तरीका ईजाद किया है। "

बिना कंस्ट्रक्टर के कंस्ट्रक्टर के साथ
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize( MyFile file, "a.txt");
String text = file2.readText();
MyFile file = new MyFile("c:\data\a.txt");


MyFile file2 = new MyFile(file, "a.txt");
String text = file2.readText();

"मैंने अभी इनिशियलाइज़ मेथड के बारे में सीखना समाप्त किया है ..."

"कठोर दिखें। निर्माणकर्ताओं के साथ, कोड अधिक सुविधाजनक और कॉम्पैक्ट है।"

"तो यह है। यहां एक प्रश्न है। मुझे पता है कि कक्षा के अंदर प्रारंभिक विधि कैसे लिखनी है , लेकिन मैं एक निर्माता कैसे लिखूं?"

"पहले, इस उदाहरण को देखें:"

बिना कंस्ट्रक्टर के कंस्ट्रक्टर के साथ
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;
  }

  public void initialize(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}
class MyFile
{
  private String filename = null;

  public MyFile(String name)
  {
    this.filename = name;
  }

  public MyFile(String folder, String name)
  {
    this.filename = folder + name;
  }

  public MyFile(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}

"एक वर्ग के अंदर एक कंस्ट्रक्टर घोषित करना आसान है। एक कंस्ट्रक्टर इनिशियलाइज़ मेथड के समान है, जिसमें केवल दो अंतर हैं:

1. एक कंस्ट्रक्टर का नाम क्लास के नाम के समान है (इनिशियलाइज़ के बजाय)।

2. एक कंस्ट्रक्टर का कोई प्रकार नहीं है (कोई प्रकार इंगित नहीं किया गया है)।"

"ठीक है, तो यह इनिशियलाइज़ जैसा है, लेकिन कुछ अंतरों के साथ। मुझे लगता है कि मैं समझ गया।"