के लिए शून्य पर प्रारंभ नहीं किए गए क्लास के इंस्टेंस चर के जावा डिफ़ॉल्ट मान यह एक उदाहरण है जो मैं अपने जावा ट्यूटोरियल से काम कर रहा था। मेरे पास टाइम 1 क्लास है जिसमें कोई कन्स्ट्रक्टर नहीं है, और इसलिए मैं इसे डिफ़ॉल्ट मानों के साथ int में प्रारंभ करने की उम्मीद कर रहा था, यह शून्य है।int
public class Time1 {
private int hour; // expected to be initialised with zero
private int minute; // expected to be initialised with zero
private int second; // expected to be initialised with zero
public void setTime(int hour, int minute, int second) {
if (hour < 0 || hour >= 24 || minute < 0 || minute >= 60 || second < 0 || second >= 60) {
throw new IllegalArgumentException("value out of range");
}
this.hour = hour;
this.minute = minute;
this.second = second;
}
public String toUniversalString() {
return String.format("%02d:%02d:%02d", hour, minute, second);
}
public String toString() {
return String.format("%d:%02d:%02d %s", ((hour == 0 || hour == 12) ? 12 : hour % 12), minute, second, (hour < 12 ? "AM" : "PM"));
}
}
और अब मैं मुख्य वर्ग
public class Time1test {
public static void main(String[] args) {
Time1 thistime = new Time1();
System.out.println(thistime);
thistime.setTime(13, 22, 33);
System.out.println(thistime);
}
}
मैं setTime()
विधि का उपयोग कर 00:00:00 वापस जाने के लिए है क्योंकि मैं किसी भी तरीकों इस्तेमाल नहीं किया है उसे पुन: प्रारूपित करने से पहले System.out.println(thistime);
उम्मीद कर रहा था है तथापि, मुझे आउटपुट 12:00:00 बजे के रूप में मिल रहा है, यह toString()
विधि को कॉल करने के बराबर है। डिफ़ॉल्ट रूप से इस विधि को क्यों बुलाया जा रहा था जब एक नई वस्तु शुरू की जाती है, यहां तक कि बिना बुलाए जाने के भी?
आप '00: 00: 00' की अपेक्षा क्यों कर रहे थे? क्या आप जावा से स्वचालित रूप से 'toUniversalString' को कॉल करने की अपेक्षा करते थे? – user2357112
असल में, जब आप मुद्रित करने के लिए 'ऑब्जेक्ट' पास करते हैं, तो इस तरह: 'System.out.println (ऑब्जेक्ट)', यह वास्तव में केवल 'System.out.println (Object.toString()) ' – Zizouz212
@ user2357112 है, I पता नहीं था कि किस विधि को बुलाया जा रहा है और क्यों/कैसे, और इसलिए यह सवाल है। और धन्यवाद Zizouz212 – scott