जावा रिकॉर्ड पैटर्न को प्रोजेक्ट एम्बर के हिस्से के रूप में जावा 16 में पेश किया गया था और जावा 21 में डिकंस्ट्रक्टर्स और पैटर्न मिलान के साथ बढ़ाया गया है। यह सुविधा जावा अनुप्रयोगों में डेटा को संभालने के अधिक संक्षिप्त और लचीले तरीके की अनुमति देती है। इस ट्यूटोरियल में, हम रिकॉर्ड पैटर्न की अवधारणा को कवर करेंगे, वे पैटर्न मिलान में कैसे मदद करते हैं, और विभिन्न कोडिंग उदाहरण।
1. जावा रिकॉर्ड्स का त्वरित पुनर्कथन
रिकॉर्ड पैटर्न में गोता लगाने से पहले, आइए जावा रिकॉर्ड का एक त्वरित पुनर्कथन करें। जावा 14 में रिकॉर्ड्स को एक नए प्रकार के वर्ग के रूप में पेश किया गया था जो विशेष रूप से अपरिवर्तनीय डेटा रखने के लिए डिज़ाइन किया गया था। वे डेटा के साथ कक्षाओं को परिभाषित करने के लिए अधिक संक्षिप्त सिंटैक्स प्रदान करके बॉयलरप्लेट कोड लिखने की आवश्यकता को समाप्त करते हैं। निम्नलिखित उदाहरण में, हम "व्यक्ति" नाम के एक रिकॉर्ड को तीन फ़ील्ड के साथ परिभाषित करते हैं: पहला नाम, अंतिम नाम और उम्र।
रिकॉर्ड व्यक्ति (स्ट्रिंग प्रथम नाम, स्ट्रिंग अंतिम नाम, पूर्णांक आयु) {}
रिकॉर्ड, अपरिवर्तनीय होने के कारण, कुछ विशेषताओं को प्रतिबंधित करते हैं:
रिकॉर्ड स्वचालित रूप से प्रत्येक क्षेत्र के लिए एक कंस्ट्रक्टर और गेटर विधियां उत्पन्न करते हैं, जो उन्हें पारंपरिक कक्षाओं की तुलना में डेटा वाहक के लिए अधिक उपयुक्त बनाते हैं।
2. रिकॉर्ड पैटर्न क्या हैं?
जावा 21 में पेश किए गए रिकॉर्ड पैटर्न, पैटर्न की अवधारणा को रिकॉर्ड के साथ जोड़ते हैं जो रिकॉर्ड से आसानी से डीकंस्ट्रक्टिंग और मान निकालने की अनुमति देता है। एक रिकॉर्ड पैटर्न में एक रिकॉर्ड क्लास प्रकार और वैकल्पिक पैटर्न वैरिएबल होते हैं जिन्हें परीक्षण सफल होने पर ही लक्ष्य रिकॉर्ड से निकाले गए मान निर्दिष्ट किए जाते हैं।
शून्य मान किसी भी रिकॉर्ड पैटर्न से मेल नहीं खाता है, इसलिए इस मामले में पैटर्न चर प्रारंभ नहीं किया जाएगा।
3. रिकॉर्ड विध्वंसक
डिस्ट्रक्टर, कंस्ट्रक्टर का व्युत्क्रम होता है। यह किसी ऑब्जेक्ट से मान जोड़ने के बजाय उसे निकालता है। रिकॉर्ड के संदर्भ में, एक विध्वंसक को "डीकंस्ट्रक्टर" कहा जाता है। यह रिकॉर्ड मानों को उनके व्यक्तिगत घटकों में विघटित करने की अनुमति देता है। मान लीजिए हमारे पास निम्नलिखित फ़ील्ड के साथ "नाम" नाम का एक रिकॉर्ड है:
रिकॉर्ड ग्राहक (स्ट्रिंग प्रथम नाम, स्ट्रिंग अंतिम नाम, पूर्णांक आयु) {}
हम "ग्राहक" रिकॉर्ड के उदाहरण से इन फ़ील्ड के मान निकालने के लिए एक डिकंस्ट्रक्टर का उपयोग कर सकते हैं, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
ग्राहक ग्राहक = नया ग्राहक ("जेन", "स्मिथ", 30);
यदि (ग्राहक का उदाहरण ग्राहक(स्ट्रिंग प्रथम नाम, स्ट्रिंग अंतिम नाम, पूर्णांक आयु)) {
System.out.println('पहला नाम:' पहलानाम); // जेन
System.out.println('अंतिम नाम:' अंतिमनाम); // स्मिथ
System.out.println('आयु:' आयु); //30
}
रिकॉर्ड संरचनाएं उन स्थितियों में उपयोगी हो सकती हैं जहां हमें एक ही ऑब्जेक्ट के रूप में कई संबंधित मानों को संग्रहीत और पुनर्प्राप्त करने की आवश्यकता होती है। रिकॉर्ड्स की डिकंस्ट्रक्शन सुविधा हमें उन मानों को आसानी से निकालने और हमारे कोड में उपयोग करने की अनुमति देती है।
4. स्विच स्टेटमेंट में रिकॉर्ड पैटर्न
जावा 16 ने उदाहरणों के बयानों के लिए पैटर्न मिलान की शुरुआत की, जिसे स्विच स्टेटमेंट को शामिल करने के लिए जावा 21 में और विस्तारित किया गया। यह कई पैटर्न को संभालते समय अधिक संक्षिप्त और पठनीय कोड की अनुमति देता है।
मान लें कि हमारे पास तीन उपप्रकारों वाला "अकाउंट" नाम का एक रिकॉर्ड है: "सेविंगअकाउंट," "क्रेडिटकार्डअकाउंट," और "होमलोनअकाउंट।" प्रत्येक उपप्रकार के पास अपने संतुलन की गणना करने का एक अलग तरीका होता है। हम इन तीन मामलों को संभालने के लिए स्विच स्टेटमेंट में रिकॉर्ड पैटर्न का उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है:
इंटरफ़ेस खाता {}
रिकॉर्ड सेविंगअकाउंट (डबल बैलेंस) खाता लागू करता है {}
रिकॉर्ड क्रेडिटकार्डअकाउंट(डबल क्रेडिटलिमिट, डबल यूज्ड) अकाउंट लागू करता है {}
रिकॉर्ड होमलोनअकाउंट (कुल राशि का दोगुना, भुगतान की गई राशि का दोगुना) खाता लागू करता है {}
खाता खाता = नया क्रेडिट कार्ड खाता(10000, 1000);
स्विच (आकार) {
केस सेविंगअकाउंट एस:
System.out.println("खाता शेष है " शेष);
तोड़ना;
केस क्रेडिटकार्डअकाउंट c:
System.out.println('क्रेडिट बैलेंस है:' (क्रेडिटलिमिट-प्रयुक्त));
तोड़ना;
मामला होमलोनअकाउंट एच:
System.out.println("बैलेंस " (कुलराशि-भुगतान));
तोड़ना;
गलती करना:
System.out.println("अज्ञात खाता");
}
5. नेस्टेड पैटर्न
एकल रिकॉर्ड से मान निकालने के अलावा, अधिक जटिल रिकॉर्ड को संभालने के लिए रिकॉर्ड पैटर्न को भी नेस्ट किया जा सकता है। मान लें कि हमारे पास "खाता" नाम का एक रिकॉर्ड है जिसमें "ग्राहक" प्रकार का एक फ़ील्ड है और "पता" प्रकार का एक अन्य फ़ील्ड है। हम इन दोनों क्षेत्रों से मान निकालने के लिए नेस्टेड रिकॉर्ड पैटर्न का उपयोग कर सकते हैं, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
रिकॉर्ड ग्राहक (स्ट्रिंग प्रथम नाम, स्ट्रिंग अंतिम नाम, पूर्णांक आयु) {}
रिकॉर्ड खाता(ग्राहक ग्राहक, पता पता) {}
ग्राहक ग्राहक = नया ग्राहक ("जॉन", "डो", 25);
पता पता = नया पता ("123 मुख्य मार्ग", "शहर", "राज्य");
खाता खाता = नया खाता(ग्राहक, पता);
अगर (खाते का उदाहरण(ग्राहक(fName, lName, उम्र), पता(सड़क, शहर, राज्य))) {
System.out.println('पहला नाम:' fName); // जॉन
System.out.println('अंतिम नाम:' lName); // डो
System.out.println('आयु:' आयु); //25
System.out.println("पता: "सड़क", "शहर", "राज्य); // 123 मुख्य सड़क, शहर, राज्य
}
इस उदाहरण में, हम "खाता" रिकॉर्ड के "ग्राहक" और "पता" फ़ील्ड से मान निकालने के लिए दो नेस्टेड पैटर्न का उपयोग करते हैं।
6. घटक मिलान
रिकॉर्ड पैटर्न अधिक लचीलेपन की अनुमति देते हैं क्योंकि पैटर्न चर को रिकॉर्ड के घटक नामों से मेल नहीं खाना पड़ता है। जब तक वे संगत हैं, पैटर्न मिलान सफल रहेगा। उदाहरण के लिए:
रिकॉर्ड ग्राहक (स्ट्रिंग प्रथम नाम, स्ट्रिंग अंतिम नाम, पूर्णांक आयु) {}
रिकॉर्ड खाता(ग्राहक ग्राहक, पता पता) {}
ग्राहक ग्राहक = नया ग्राहक ("जॉन", "डो", 25);
यदि (ग्राहक का उदाहरणग्राहक(var fn, var ln, var आयु)) {
System.out.println('पहला नाम:' fn); // जॉन
System.out.println('अंतिम नाम:' ln); // डो
System.out.println('आयु:' आयु); //25
}
// नेस्टेड रिकॉर्ड घटकों तक पहुंच
खाता खाता = नया खाता (ग्राहक, नया पता ("123 मेन स्ट्रीट", "न्यूयॉर्क", "एनवाई"));
यदि (खाता उदाहरण खाता(var ग्राहक, var पता)) {
System.out.println('ग्राहक:' ग्राहक); // ग्राहक[पहला नाम=जॉन, अंतिम नाम=डो, उम्र=25]
System.out.println('पता:' पता); // पता[सड़क=123 मुख्य सड़क, शहर=न्यूयॉर्क, राज्य=एनवाई]
}
यहाँ, पैटर्न वेरिएबल "fn" और "ln" "ग्राहक" रिकॉर्ड में "fName" और "lName" के संबंधित घटक नामों से भिन्न हैं। यह रिकॉर्ड पैटर्न को अधिक लचीला बनाता है और परिवर्तनीय नामों के साथ किसी भी संभावित टकराव से बचाता है।
7. निष्कर्ष
अंत में, जावा रिकॉर्ड पैटर्न रिकॉर्ड को विघटित करने और उनसे मूल्य निकालने का एक सुविधाजनक तरीका प्रदान करता है। इंस्टेंसऑफ़ और स्विच स्टेटमेंट में पैटर्न मिलान को संभालते समय वे कोड को अधिक संक्षिप्त, स्वच्छ और पठनीय बनाते हैं। रिकॉर्ड पैटर्न, रिकॉर्ड विध्वंसकों के साथ मिलकर, जटिल रिकॉर्ड के अधिक मजबूत प्रबंधन की अनुमति देते हैं। कुल मिलाकर, यह सुविधा डेटा वाहक के रूप में रिकॉर्ड के उपयोग को बढ़ाती है और जावा प्रोग्रामिंग को अधिक सुखद बनाती है।
डेवलपर्स MyExamCloud के 1Z0-830 प्रैक्टिस टेस्ट के उपयोग के साथ SE 21 डेवलपर प्रमाणित व्यावसायिक परीक्षा के लिए अध्ययन करके अधिक जावा 21 सुविधाओं की खोज कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3