मैं दो "मुद्दों," देख, हालांकि मैं उन्हें कॉल करने में संकोच गलतियों:
आप स्पष्ट रूप से 89 के रूप में प्राणी ग की उम्र स्थापित कर रहे हैं, और फिर अप्रारंभीकृत डिफ़ॉल्ट के साथ उस उम्र पुनर्लेखन (!) जीव डी। यदि आप यही करना चाहते हैं, तो ठीक है, लेकिन कम से कम आप कुछ चक्रों को बर्बाद कर रहे हैं ताकि आप उस मूल्य को निर्धारित कर सकें जिसे आप बाद में फेंकना चाहते हैं।
आप संभावित रूप से जावाबीन नामकरण सम्मेलनों का उल्लंघन कर रहे हैं।
उत्तरार्द्ध बिंदु व्याख्या करने के लिए: जावा पुस्तकालयों और चौखटे (विशेष रूप से JSP) का एक बहुत एक घटक के रूप वस्तु के इलाज के लिए JavaBeans पर भरोसा करते हैं। मैंने उपयोग की जाने वाली वास्तविक तंत्र में गहराई से डाला नहीं है, लेकिन मैंने जो पढ़ा है, उससे यह गुणों और उन गुणों के प्रकारों का अनुमान लगाने के लिए जावाबींस कक्षा के आत्मनिरीक्षण पर निर्भर करता है। एक इंट और एक प्राणी दोनों को स्वीकार करने के लिए अपने सेटर सेट YearOfBirth() को अधिभारित करके, आप आत्मनिरीक्षण को फेंक सकते हैं। (Java12eans के लिए एक सभ्य परिचय के लिए here देखें।)
यह एक बड़ा सौदा नहीं है - यह पूरी तरह से संभव है कि आप इस वर्ग का उपयोग जावाबीन के रूप में नहीं करेंगे, और यदि आप इसे रिफैक्टर करने के लिए तुच्छ हैं तो यह काम करता है । लेकिन अपने शिक्षकों शायद निम्नलिखित की तरह एक छोटे से क्लीनर कुछ पसंद करेंगे,:
class Creature {
private int yearOfBirth=10;
public void setYearOfBirth(int year) {
yearOfBirth = year;
}
int getYearOfBirth() {
return yearOfBirth;
}
public static void main(String args[])
{
Creature c = new Creature();
c.setYearOfBirth(89);
Creature d = new Creature();
c.setYearOfBirth(d.getYearOfBirth());
System.out.println(c.getYearOfBirth());
}
}
अब yearOfBirth तक आपकी पहुंच के सभी सार्वजनिक गेटर विधियों के माध्यम से आता है, जो कैप्सूलीकरण मदद करता है, और अपने मुख्य यदि तोड़ने से कोड पाएगा विधि दूसरे वर्ग में जाती है। (ग्रेग डी के रूप में सही ढंग से बताया।)
इसके अलावा, यह आपके कोड स्पष्ट है, जो अधिक से अधिक महत्वपूर्ण हो जाता है जब आप दूसरों को बनाए रखने और संशोधित करने के लिए के लिए कोड लिखना शुरू की आशय बनाने का अतिरिक्त लाभ है।
उपवास (पता नहीं क्यों इसे डाउनवॉट किया गया था) - यह मेरे लिए एक बिल्कुल अच्छा शुरुआती स्तर का प्रश्न प्रतीत होता है। – paxdiablo
आपका संकाय यह इंगित कर रहा है कि आप 'getYearOfBirth()' (JavaBean access) के माध्यम से सीधे 'निजी' चर 'वर्षऑफबर्थ' तक पहुंच रहे हैं। एकमात्र कारण आप ऐसा करने में सक्षम हैं और यह संकलित करता है क्योंकि 'निजी' डेटा उसी कक्षा के किसी भी उदाहरण से सुलभ है। यदि आपने 'गैर-निर्माण' कक्षा से सीधे 'वर्षऑफबर्थ' तक पहुंचने का प्रयास किया था तो संकलक निश्चित रूप से फिट होगा और आपको 'सार्वजनिक' विधि 'getYearOfBirth() 'का उपयोग करना होगा। –