बोलो एक उदाहरण है जो मैंने ट्यूटोरियल पॉइंट्स, एक निर्माता का उदाहरण दिया है। मुझे उनमें से अधिकतर मिला, लेकिन मुझे नहीं लगता कि आपको एक निर्माता और एक विधि क्यों चाहिए।रचनाकारों और विधियों के बीच अंतर
public Puppy(String name){
System.out.println("Passed Name is :" + name);
}
मेरा प्रश्न है, इसके बजाय आपको ऐसा करने से क्या रोकता है?
public static void Puppy(String name){
System.out.println("Passed Name is: "+name);
}
क्या ये दोनों एक ही बात नहीं करते हैं?
यहाँ संदर्भ के लिए पूरा कार्यक्रम है:
public class Puppy {
int puppyAge;
public Puppy(String name) {
System.out.println("Passed Name is :" + name);
}
public void setAge(int age) {
puppyAge = age;
}
public int getAge() {
System.out.println("Puppy's age is :" + puppyAge);
//what does this return do? since the puppyAge is already printed above.
return puppyAge;
}
public static void main(String []args){
Puppy myPuppy = new Puppy("tommy");
myPuppy.setAge(2);
myPuppy.getAge();
System.out.println("Variable Value :" + myPuppy.puppyAge);
}
}
आप किस विधि पर विश्वास करते हैं कि कन्स्ट्रक्टर के काम को डुप्लिकेट कर रहा है? केवल अगर कन्स्ट्रक्टर और दूसरी विधि एक ही कार्य कर रही है तो उनमें से एक अनावश्यक हो सकती है। इस मामले में, हालांकि, कन्स्ट्रक्टर उन सभी चीजों को नहीं कर रहा है जो इसे करना चाहिए - विशेष रूप से एक निर्माता को कक्षा में सभी सदस्य चर के मान निर्धारित करना चाहिए (और यह puppyAge को सेट नहीं कर रहा है, इसलिए उदाहरण एक अनिर्धारित है निर्माण के तुरंत बाद राज्य) और यह एक चर सेट करने के लिए पिल्ला के नाम का उपयोग नहीं कर रहा है (तो यह पिल्ला के नाम के साथ क्यों प्रदान किया जाता है?)। – Simon