oop - A better way of returning different types in Java -


  सार्वजनिक int attack (भालू भालू) {int newStamina = bear.getStamina () - 50; bear.setStamina (newStamina); रिटर्न बीअर। गेट स्टैमिना (); }   

मेरे शानदार भालू वर्ग में विस्तार करने के लिए, मैंने एक हमला (!) विधि को लागू करने का निर्णय लिया है।

मेरे पास 2 मेरे भालू के उदाहरण: भालू 1 और बीर 2।

मेरे सिर में:

भालू 1.एटैक (बीयर 2);

तब मेरे कोड को बीयर 2 वर्तमान सहनशक्ति मूल्य मिलता है और इसे 50 से दूर ले जाता है, इसे नएस्टामिना चर में निर्दिष्ट किया जाता है।

बीयर 2 फिर setStamina विधि के साथ इस नई सहनशक्ति चर को पारित कर दिया जाता है।

तब मैं बीयर 2 के वर्तमान सहनशक्ति, क्रूर भालू के हमले के बाद।

यह काम करता है, लेकिन मुझे लगता है कि वहाँ एक बेहतर तरीका है।

Anyhoo मैं इसके बाद क्या करना चाहूंगा:

int newStamina = भालू .getStamina () - 50;

है:

  अगर (न्यूस्टामिना & lt; = 0) {// भालू मर गया है! }   

अब मेरा तरीका हमला एक int देता है, क्योंकि अगर भालू मर नहीं जाता है, तो यह अभी भी एचपी है और मैं

यदि भालू सहनशक्ति से बाहर है, तो मुझे उस चीज़ को वापस करने की आवश्यकता है जो इसका प्रतीक है।

आप क्या करेंगे? मैं गलत नहीं लौट सकता, और मुझे यकीन नहीं है कि यह वैसे भी काम करेगा।

एक अच्छा नियम अंगूठे का केवल सेट विधियों के भीतर उदाहरण चर को संशोधित करता है ऐसा करने से आपके कोड को और अधिक प्रबंधनीय रखा जाएगा। <पूर्व> / ** * दिए गए राशि * द्वारा इस भालू की सहनशक्ति को कम करें / सार्वजनिक शून्य को कम करना (int reduction) {setStamina (getStamina -) - कमी); } सार्वजनिक शून्य हैडड () {वापसी GetStamina () & lt; 0; } सार्वजनिक शून्य का दौरा (भालू अन्य बीयर) {अन्यबीयर.रेड स्टिमिना (50); अगर (अन्यबीयर.आईसीडीड ()) {this.victoryDance (); }}

Comments