जावा और उसके प्रकारों में क्लोनिंग क्या है?



जावा में क्लोनिंग पर यह लेख आपको क्लोनिंग प्रक्रिया और जावा द्वारा समर्थित विभिन्न प्रकार के क्लोनिंग में विस्तृत जानकारी देगा।

प्रोग्रामिंग करते समय, अक्सर हम ऐसे परिदृश्यों में आते हैं, जहां हमें एक पूर्ण कोड का पुन: उपयोग करने की आवश्यकता होती है। कोड को फिर से लिखना कार्यक्रम की दक्षता को कम करते हुए प्रोग्राम को भारी बनाता है। इस प्रकार, जावा हमें एक उत्कृष्ट सुविधा प्रदान करता है जो कि इस बोझिल कार्य से बचाता है। यह जावा में क्लोनिंग के रूप में जाना जाता है और इस लेख के माध्यम से, मैं आपको इसमें पूरी जानकारी दूंगा।

लूप का उपयोग करके जावा में एक संख्या के अंकों का योग

नीचे उन विषयों पर चर्चा की जाएगी, जिन पर मैं इस लेख में चर्चा करूंगा:





जावा में क्लोनिंग

जावा में ऑब्जेक्ट क्लोनिंग मूल वस्तु की एक सटीक प्रतिलिपि बनाने की प्रक्रिया है। दूसरे शब्दों में, यह मूल वस्तु से सभी डेटा और विशेषताओं को कॉपी करके एक नई वस्तु बनाने का एक तरीका है। यह केवल क्लोन () पद्धति को लागू करने से संभव है java.lang.Object कक्षा। क्लोन विधि एक वस्तु की एक सटीक प्रतिलिपि बनाता है जिसके लिए यह किया गया हैफ़ील्ड-बाय-फ़ील्ड असाइनमेंट क्रम में लागू किया गया है और नया ऑब्जेक्ट संदर्भ लौटाएगा एक बात जो आपको याद रखनी चाहिए, जावा में, ऑब्जेक्ट जो क्लोन इंटरफ़ेस को लागू करते हैं जो एक मार्कर इंटरफ़ेस है, क्लोन () का उपयोग करने की अनुमति है।

अब जब आप जानते हैं कि जावा में क्लोनिंग क्या है तो आइए इस सुविधा का उपयोग करने के विभिन्न लाभों को देखें।



जावा में क्लोनिंग के फायदे

नीचे मैंने जावा में क्लोनिंग का उपयोग करने के कुछ सबसे पेचीदा विशेषताओं को नीचे सूचीबद्ध किया है।

  • कोड की लाइनों को कम करने में मदद करता है।
  • नकल करने का सबसे प्रभावी और कुशल तरीकावस्तुएं।
  • साथ ही, किसी सरणी को कॉपी करने के लिए क्लोन () सबसे तेज़ तरीका माना जाता है।

नोट: हालांकि क्लोनिंग का उपयोग कुछ डिज़ाइन मुद्दों में हो सकता है लेकिन यदि आप इसे उचित रणनीतिक तरीके से उपयोग करते हैं तो यह आपको लाभान्वित कर सकता है।

जावा में क्लोनिंग के प्रकार

जावा में क्लोनिंग को समूहीकृत किया जा सकता हैदो श्रेणियों में:



  1. उथला क्लोनिंग
  2. गहरी क्लोनिंग

आइए उनमें से प्रत्येक को एक-एक करके समझें।

उथला क्लोनिंग

जावा में, जब क्लोनिंग प्रक्रिया को क्लोनिंग () विधि द्वारा किया जाता है तो इसे शाल्लो क्लोनिंग कहा जाता है। यह जावा में डिफ़ॉल्ट क्लोनिंग प्रक्रिया है जहां मूल क्षेत्र की एक उथली प्रतिलिपि सटीक फ़ील्ड के साथ बनाई जाएगी। यदि मूल वस्तु में कुछ अन्य वस्तुओं के क्षेत्र के रूप में संदर्भ हैं, तो केवल उस वस्तु के संदर्भों को नए ऑब्जेक्ट निर्माण के बजाय क्लोन किया जाएगा। दूसरे शब्दों में, यदि आप क्लोन की गई वस्तुओं के मूल्य को बदलते हैं तो यह मूल रूप में भी परिलक्षित होगी। इस प्रकार, उथले क्लोनिंग मूल वस्तु पर निर्भर है।

उथली प्रतिलिपि - जावा में क्लोनिंग - एडुर्कानीचे मैंने उसी का उदाहरण दिया है:

package edureka class EduCourse {स्ट्रिंग कोर्स 1 स्ट्रिंग कोर्स 2 स्ट्रिंग कोर्स 3 पब्लिक एडुकॉर्स (स्ट्रिंग crs1, स्ट्रिंग crs2, स्ट्रिंग crs3) {this.course1 = crs1 this2.gr2 = crs2 this.course3 = crs3}} वर्ग EduLearner implements '' EduCourse eduCourse public EduLearner (int eduId, String learnerName, EduCourse eduCourse) {This.eduId = eduId this.learnerName / learnerName this.eduCourse = eduCourse} (विधि-प्रतिरूपण का सुरक्षित संस्करण) (क्लोनिंग) विधि का क्लोन है। .clone ()}} सार्वजनिक वर्ग ShallowCloneSample {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {EduCourse j2ee = नया EduCourse ('जावा', 'स्प्रिंग', 'माइक्रोसोर्विसेज') EduLearner learner1 = new EduLearner (2811, 'Max') , j2ee) EduLearner learner2 = null try {// learner1 का एक क्लोन बनाना और इसे learner2 learner2 = (EduLearner) learner1.clone ()}} कैच (CloneNotSupportedException e) {e.printStackTrace ()} // Learn Learn2 का मुद्रण विवरण प्रदान करना। System.out.p. rintln ('शिक्षार्थी 2 का विवरण:') System.out.println ('Id:' + learner1.eduId) System.out.println ('नाम:' + learner1.learnerbame) System.out.println ('कोर्स आईडी: '+ learner1.eduCourse) //' learner1 'के सभी पाठ्यक्रमों को प्रिंट करना। System.out.println (' लर्नर्स 1 का पाठ्यक्रम: ') System.out.println (learner1.eduCourse.cn1) System.out.println (शिक्षार्थी 1)। eduCourse.course2) System.out.println (learner1.eduCourse.course3) // Learner2 System.out.println का मुद्रण विवरण ('शिक्षार्थी 2 का विवरण:') System.out.println ('Id:' + learner2.eduIdd) ) System.out.println ('नाम:' + learner2.learnerName) System.out.println ('कोर्स आईडी:' + learner2.eduCourse) // 'learner2. System.out.println' (पाठ्यक्रम) के सभी पाठ्यक्रमों की छपाई शिक्षार्थी के 2: ') System.out.println (learner2.eduCourse.course1) System.out.println (लर्नर 2.eduCourse.course2) System.out.println (लर्निंग2.eduCourse.course3) //' learner2 'के पाठ्यक्रम 3 को बदलना 'learner2.eduCourse.course3 =' JSP '// यह परिवर्तन मूल' learner1 'System.out.println (') में दिखाई देगा। शिक्षार्थी 2 के अपडेटेड पाठ्यक्रम: ') System.out.println (learner1.eduCourse.course1) System.out.println (learner1.eduCourse.course2) System.out.println (learner1.eduCourse.course3)}}}

आउटपुट:

लर्नर 2 का विवरण: Id: 2811 नाम: मैक्स कोर्स Id: EduCourse @ 15db9742 लर्नर का पाठ्यक्रम 1: जावा स्प्रिंग माइक्रोसर्विस लर्नर 2 का विवरण: Id: 2811 नाम: मैक्स कोर्स आईडी: एडुकैसरशिप (15db9742 लर्नर का कोर्स 2: जावा स्प्रिंग माइक्रोसिस्टर्सेस लर्नर 2 के अपडेटेड कोर्स: जावा स्प्रिंग जेएसपी

जावा में डीप क्लोनिंग

जावा में, जब क्लोन करने योग्य इंटरफ़ेस को लागू करके क्लोनिंग प्रक्रिया की जाती है, इसे डीप क्लोनिंग कहा जाता है। इस प्रकार की क्लोनिंग में, मूल वस्तु के सभी क्षेत्रों की एक सटीक प्रतिलिपि बनाई जाएगी। लेकिन मामले में, मूल वस्तु में अन्य ऑब्जेक्ट्स को फ़ील्ड के रूप में संदर्भित किया जाता है, फिर क्लोन () विधि को कॉल करके उन ऑब्जेक्ट्स की एक प्रति भी बनाई जाएगी। यह क्लोन किए गए ऑब्जेक्ट को मूल ऑब्जेक्ट से स्वतंत्र बनाता है और किसी भी ऑब्जेक्ट में किए गए किसी भी परिवर्तन को दूसरे पर प्रतिबिंबित नहीं किया जाएगा।

नीचे मैंने उसी का उदाहरण दिया है:

package edureka class EduCourse इम्प्लीमेंट्स Cloneable {String course1 String course2 String course3 public EduCourse (स्ट्रिंग crs1, स्ट्रिंग crs2, String crs3) {this.course_ crs1 this.course2 = crs2 this.course3 = crs3} संरक्षित ऑब्जेक्ट क्लोन (-)। वापसी super.clone ()}} वर्ग EduLearner को लागू करता है ऑब्जेक्ट प्रोटेक्टेड ऑब्जेक्ट क्लोन () थ्रोन्सनॉटसुप्रोसेप्टेड अपवाद {EduLearner learner = (EduLearner) super.clone () शिक्षार्थी .eduCourse = (EduCourse) eduCourse.clone () रिटर्न लर्नर} के लिए क्लोनिंग () विधि को ओवरराइड करने की विधि। DeepCloneSample {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {EduCourse j2ee = new EduCourse ('Java ’,' Spring’, ros Microservices ’) EduLearner learner1 - नया EduLearner (2811, Max Max’, j2ee) EduLearner सीखें er2 = null try {// learner1 का एक क्लोन बनाना और इसे learner2 learner2 = (EduLearner) learner1.clone ()} कैच (CloneNotSupportedException e {e.printStackTrace) ()} // प्रिंटिंग डिटेल्स Learner1 System.out को असाइन करना। Println ('शिक्षार्थी 2 का विवरण:') System.out.println ('Id:' + learner1.eduId) System.out.println ('नाम:' + learner1.learnerName: System.out.println ('कोर्स आईडी): '+ learner1.eduCourse) //' learner1 'के सभी पाठ्यक्रमों को प्रिंट करना। System.out.println (' लर्नर्स 1 का पाठ्यक्रम: ') System.out.println (learner1.eduCourse.cn1) System.out.println (शिक्षार्थी 1)। eduCourse.course2) System.out.println (learner1.eduCourse.course3) // Learner2 System.out.println का मुद्रण विवरण ('शिक्षार्थी 2 का विवरण:') System.out.println ('Id:' + learner2.eduIdd) ) System.out.println ('नाम:' + learner2.learnerName) System.out.println ('कोर्स आईडी:' + learner2.eduCourse) // 'learner2. System.out.println' (पाठ्यक्रम) के सभी पाठ्यक्रमों की छपाई शिक्षार्थी के 2: ') System.out.println (learner2.eduCourse.course1) System.out.nl n (learner2.eduCourse.course2) System.out.println (learner2.eduCourse.course3) // 'learner2' learn3 के पाठ्यक्रम 3 को बदलना। learner2.eduCourse.course3 = 'JSP' // यह परिवर्तन मूल रूप से परिलक्षित नहीं होगा ' learner1 'System.out.println (' शिक्षार्थियों का पाठ्यक्रम 1: ') System.out.println (learner1.eduCourse.course1) System.out.println (अधिगम 1।eduCar.course2) System.out.println (learner1.eduCourse)। पाठ्यक्रम 3) // Learner2 के अपडेटेड पाठ्यक्रम System.out.println ('लर्नर्स 2 के पाठ्यक्रम:') System.out.println (learner2.eduCourse.course1) System.out.println (learn2.eduCourse.course2) System.out। Println (learner2.eduCourse.course3)}}

आउटपुट:

लर्नर 2 का विवरण: Id: 2811 नाम: मैक्स कोर्स Id: edureka.EduCourse@15db9742 लर्नर का पाठ्यक्रम 1: जावा स्प्रिंग माइक्रोसर्विस लर्नर 2 का विवरण: Id: 2811 नाम: मैक्स कोर्स आईडी: edureka.EduCourse@6d06d69c लर्नर 2 का पाठ्यक्रम। : जावा स्प्रिंग लर्नसर कोर्स ऑफ़ लर्नर 1: जावा स्प्रिंग मिक्रोसेर्विस कोर्स ऑफ़ लर्नर 2: जावा स्प्रिंग जेएसपी

यह जावा में क्लोनिंग पर इस लेख के अंत में हमें लाता है। यदि आप जावा के बारे में अधिक जानना चाहते हैं तो आप हमारे बारे में बता सकते हैं ।

अब जब आप समझ गए हैं कि जावा में एक क्लोनिंग क्या है, तो देखें 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का का जावा J2EE और SOA प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक सिर शुरू करने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया 'जावा में क्लोनिंग' लेख के टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपके पास वापस आ जाएंगे।