Java/C3/Polymorphism/Hindi
From Script | Spoken-Tutorial
Time | Narration |
00:01 | नमस्कार, Polymorphism in Java पर स्पोकन ट्यूटोरियल पर आपका स्वागत है। |
00:06 | इस ट्यूटोरियल में हम निम्न के बारे में सीखेंगे:
जावा में Polymorphism Run-time polymorphism Virtual Method Invocationऔर Compile-time polymorphism. |
00:19 | यहाँ हम उपयोग कर रहे हैं ऊबंटु वर्जन 12.04, JDKवर्जन1.7 और Eclipse 4.3.1 |
00:31 | इस ट्यूटोरियल का अनुकरण करने के लिए, आपको Java' और Eclipse IDE का बुनियादी ज्ञान होना चाहिए। |
00:37 | आपको Subclassing , Method overriding' और overloading का ज्ञान भी होना चाहिए। |
00:43 | यदि नहीं है तो, संबंधित जावा ट्यूटोरियल देखने के लिए हमारी वेबसाइट पर जाएँ। |
00:48 | Polymorphism कई रूपों को लेने के लिए object की एक क्षमता है। |
00:54 | Polymorphism के प्रमुख लाभ हैं: Reduction of complexity और Code re-usability. |
01:03 | जावा में, यहाँ दो प्रकार के polymorphism हैं:Compile-time और Run-time polymorphism. |
01:11 | Compile-time polymorphism को अनिवार्य रूप से Method overloading के रूप में जाना जाता है। इसे Static Binding भी कहते हैं। |
01:20 | Run-time polymorphism को अनिवार्य रूप से Method overriding के रूप में भी जाना जाता है। इसे Dynamic Binding भी कहते हैं। |
01:29 | हम पहले ही Run-time polymorphism अर्थात Method overriding के बारे में सीख चुके हैं। |
01:35 | Eclipse IDE पर जाते हैं। मैंने पिछले ट्यूटोरियल में पहले से ही MyProject नामक प्रोजेक्ट बनाया है। |
01:44 | Using final keyword ट्यूटोरियल की कोड फाइल लेते हैं। |
01:49 | Employee क्लास parent क्लास है। |
01:52 | Manager क्लास subclass है। |
01:55 | Manager क्लास में एक अतिरिक्त वेरिएबल department शामिल है। |
02:01 | Manager क्लास मैथड getDetails() Employee क्लास मैथड getDetails() को ओवरराइड करता है। |
02:08 | हम Manager क्लास ऑब्जेक्ट्स द्वारा getDetails() मैथड कॉल कर रहे हैं अर्थात Manager |
02:16 | विवरण प्रिंट करने के लिए टाइप करें : system.out.println Details of Manager Class. |
02:28 | प्रोग्राम सेव और रन करें।तो, हम आउटपुट में department वैरिएबल वैल्यू देख सकते हैं। |
02:37 | इसलिए subclass मैथड को runtime पर लागू किया जाता है। |
02:42 | मैथड invocation JVM द्वारा निर्धारित किया जाता है, कंपाइलर द्वारा नहीं। |
02:48 | इसलिए इसे Runtime polymorphism' या method overriding. के रूप में जाना जाता है। |
02:55 | हमने सीखा कि Run time polymorphism. क्या है। |
02:58 | अब Virtual Method Invocation. के बारे में सीखते हैं। |
03:03 | Eclipse IDE में Employee क्लास पर आएँ। |
03:07 | वेरिएबल name के लिए static और final कीवर्ड्स हटाएँ। |
03:13 | मैथड setName को अनकमेंट करें। |
03:16 | static ब्लॉक हटाएँ। फाइल सेव करें। |
03:21 | TestEmployee क्लास पर आएँ। वैल्यू manager.setName(“Nikkita Dinesh”); अनकमेंट करें। |
03:31 | हम इस उदाहरण को अनकमेंट करते हैं, क्योंकि हमने Empolyee क्लास में setName() मैथड अनकमेंट किया है। |
03:38 | अब, Employee क्लास के लिए Employee ऑब्जेक्ट्स emp1 दर्शाते हैं। |
03:46 | टाइप करें: Employee emp1 = new Employee open and close parenthesis semicolon |
03:57 | अब Employee क्लास के लिए setEmail और setName के लिए वैल्यू इनीशिलाइज करें। |
04:03 | टाइप करें: emp1.setName("Jayesh"); emp1.setEmail("pqr@gmail.com"); |
04:16 | employee विवरण प्रिंट करने के लिए टाइप करें : System.out.println("Details of Employee class:" emp1.getDetails()) सेमीकॉलन। |
04:37 | Employee क्लास के लिए Manager ऑब्जेक्ट emp2 दर्शाते हैं।
टाइप करें: Employee emp2 = new Manager open and close parenthesis semicolon |
04:54 | हम इसे करने में सक्षम हैं क्योंकि कोई भी Java object जो कि एक से अधिक IS-A टेस्ट पास करता है, polymorphic है। |
05:04 | जावा में, सभी ऑब्जेक्ट्स polymorphic है, क्योंकि कोई भी ऑब्जेक्ट्स IS-A ' टेस्ट अपने स्वयं के प्रकार और क्लास ऑब्जेक्ट के लिए पास करेगा। |
05:16 | A Manager IS-A Employee
A Manager IS-A Manager A Manager IS-A Object. |
05:23 | reference variable के माध्यम से किसी ऑब्जेक्ट्स तक पहुँचने का केवल एक संभावित तरीका है। |
05:29 | Reference variables जैसे कि emp1, emp2 और manager. |
05:36 | यहाँ हम दो Manager ऑब्जेक्ट्स को दर्शाते हैं।
पहला जो कि Employee क्लास संदर्भित करता है। और दूसरा जो कि Manager क्लास संदर्भित करता है। |
05:47 | emp2 ऑब्जेक्ट का उपयोग करके setEmail, setName और setDepartment के लिए वैल्यूज को इनीशिलाइज करते हैं। |
05:55 | टाइप करें
emp2.setName("Ankita"); emp2.setEmail(“xyz@gmail.com”); emp2.setDepartment(“IT”); |
06:14 | हम देखते हैं कि यहाँ एक एरर है।"The method setDepartment(String) is undefined for the type Employee". |
06:23 | यह इसलिए क्योकि, setDepartment मैथड Employee क्लास के लिए मौजूद नहीं है। |
06:30 | अत:, लाइन emp2.setDepartment("IT"); हटा दें। |
06:37 | विवरण प्रिंट करने के लिए टाइप करें: System.out.println("Details of Manager class:" emp2.getDetails()) सेमीकॉलन। |
06:55 | प्रोग्राम सेव और रन करें। |
06:58 | यहाँ आउटपुट में, हमें Manager of: रिक्त मिलता है। |
07:04 | यह इसलिए क्योंकि, हमने emp2 का उपयोग करके Manager क्लास में department इनीशिलाइज नहीं किया है। |
07:12 | डेमो उद्देश्य के लिए, डिफॉल्ट department IT है। |
07:17 | अत:, Manager क्लास में जाएँ और department के लिए वैल्यू इनीशिलाइज करें। |
07:25 | प्रोग्राम सेव औऱ रन करें। |
07:28 | हमें आउटपुट प्राप्त होता है: Employee object referring Employee class, |
07:34 | Manager ऑब्जेक्ट Employee क्लास को संदर्भित कर रहा है और Manager ऑब्जेक्ट Manager क्लास को संदर्भित कर रहा है। |
07:42 | यहाँ, हम देखते हैं कि Manager क्लास का getDetails() मैथड emp2 द्वारा कॉल होता है। |
07:49 | लेकिन जब emp2 setDepartment को कॉल करने की कोशिश करता है, तो हमें एक एरर प्राप्त होती है। |
07:54 | इसका कारण निम्नानुसार है:
कंपाइलर emp2.getDetails() के समय Employee क्लास में getDetails() मैथड को देखता है। |
08:05 | अत:, यह कोई एरर नहीं डालता है और कोड को मान्य करता है। |
08:10 | run time पर, हालांकि, JVM Manager क्लास में getDetails() को लागू करता है क्योंकि Manager क्लास का getDetails() Employee क्लास के getDetails() को ओवरराइड करता है। |
08:24 | अत:, हमें Manager क्लास के getDetails() के आधार पर आउटपुट प्राप्त होता है। लेकिन कंपाइलर Employee क्लास में setDepartment मैथड को नहीं देखता है। |
08:36 | इसलिए, emp2 कॉल करने पर setDepartment एक एरर देता है। |
08:43 | यहाँ, Employee मैथड getDetails() Employee क्लास के लिए लागू करता है। |
08:49 | कंपाइलर emp1.getDetails() के समय getDetails() के लिए Employee क्लास संदर्भित करता है। |
08:57 | रन टाइम पर, JVM Employee क्लास में getDetails() को लागू करता है।अत:, हमें Employee क्लास के getDetails() के आधार पर आउटपुट प्राप्त होता है। |
09:08 | इसलिए, JVM object के लिए उपयुक्त मैथड कॉल करता है जिसे प्रत्येक वेरिएबल में निर्दिष्ट किया जाता है। |
09:16 | यह व्यवहार Virtual Method Invocation. के रूप में संदर्भित किया जाता है। |
09:21 | मैथड्स 'Virtual Methods के रूप में संदर्भित है। |
09:26 | जावा में सभी मैथड्स इस तरह का व्यवहार करते हैं। |
09:31 | हमने सफलतापूर्वक सीखा है कि Virtual Method Invocation. क्या है। |
09:36 | हमने पहले ही Compile-time polymorphism अर्थात method overloading के बारे में सीखा है। |
09:42 | संक्षेप में जानते हैं कि Compile time polymorphism क्या है। |
09:47 | Compile time polymorphism में, क्लास में एक से अधिक मैथड हो सकते हैं। |
09:53 | मैथड्स का समान नाम होता है लेकिन अलग-अलग तर्कों के साथ। |
09:59 | कंपाइलर कंपाइल-टाइम पर मैथड कॉल को समझने में सक्षम है। यही कारण है कि इसे compile time polymorphism. के रूप में जाना जाता है। |
10:09 | अत:, संक्षेप में |
10:11 | इस ट्यूटोरियल में हमने सीखा
जावा में Polymorphism क्या है Run-time polymorphism Virtual Method Invocationऔर Compile-time polymorphism. |
10:23 | नियत-कार्य के रूप में, Vehicle और Bike class के लिए मैथड्स ओवरराइड करें जो हमने पिछले ट्यूटोरियल में उपयोग किया था। |
10:32 | निम्न लिंक पर उपलब्ध वीडियो स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है। कृपया इसे देखें |
10:40 | स्पोकन ट्यूटोरियल प्रोजेक्ट टीम- स्पोकन ट्यूटोरियल का उपयोग कर कार्यशालाएं आयोजित करती है। ऑनलाइन परीक्षा पास करने वालों को प्रमाण पत्र देती है। अधिक जानकारी के लिए, कृपया contact@spoken-tutorial.org पर लिखें। |
10:51 | स्पोकन ट्यूटोरियल प्रोजेक्ट आईसीटी के माध्यम से राष्ट्रीय शिक्षा मिशन,एमएचआरडी, भारत सरकार द्वारा समर्थित है।इस मिशन पर अधिक जानकारी यहां उपलब्ध है: |
11:03 | यह स्क्रिप्ट विकास द्वारा अनुवादित है।IIT Bombay से मैं जया आपसे विदा लेती हूँ धन्यवाद। |