मेरे पास वेक्टर 2 नामक एक वर्ग है जो डिफ़ॉल्ट रूप से वेक्टर (0.0, 0.0) को खाली स्ट्रिंग के बराबर नाम के साथ बनाता है। गेट्टर और सेटर विधियों को निर्दिष्ट करने के बाद मुझे दो वैक्टरों के योग की गणना करने के लिए कहा जाता है। मैंने निम्नलिखित की कोशिश की है ...

public Vector2 add(Vector2 other) {
    Vector2 a = new Vector2();
    return other + a;
}

जब मैं ऐसा करता हूं तो मुझे एक अमान्य तर्क प्रकार मिलता है क्योंकि अतिरिक्त स्ट्रिंग प्रकारों के लिए अमान्य है। मैंने पार्सिंग और कास्टिंग की कोशिश की और यह काम नहीं करेगा। मैं जावा के लिए नया हूँ और बस कनेक्शन नहीं बना सकता।

0
Keeley 13 जिंदा 2020, 04:09

1 उत्तर

सबसे बढ़िया उत्तर

जावा में, अंकगणितीय ऑपरेटरों का उपयोग वस्तुओं पर नहीं किया जा सकता है और उन्हें ओवरराइड नहीं किया जा सकता है (यह धागा देखें यहां)।

लेकिन आइए इसे दूसरे तरीके से लेते हैं: जावा को कैसे पता होना चाहिए कि + को वास्तव में कक्षा के साथ क्या करना चाहिए? आपको अंकगणित को स्वयं लागू करने की आवश्यकता है, जिसका अर्थ है कि आपको एक वेक्टर को दूसरे में जोड़ने के वास्तविक एल्गोरिदम में जोड़ने की विधि को तोड़ना होगा।

चूंकि मेरा मानना ​​​​है कि आपके पास केवल 2 डी वेक्टर होगा जो होगा:

Vector2 res = new Vector2();
res.a = this.a + other.a;
res.b = this.b + other.b;
return res;

यह मानते हुए कि a और b या तो int, double, float या कोई अन्य आदिम हैं, जहां + ऑपरेटर का उपयोग किया जा सकता है।

2
Stephen C 13 जिंदा 2020, 01:42