Java/C3/Polymorphism/Hindi

From Script | Spoken-Tutorial
Revision as of 12:57, 13 November 2017 by Jayarastogi (Talk | contribs)

Jump to: navigation, search
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 स्पोकन ट्यूटोरियल प्रोजेक्ट आईसीटी के माध्यम से राष्ट्रीय शिक्षा मिशन,एमएचआरडी, भारत सरकार द्वारा समर्थित है।इस मिशन पर अधिक जानकारी यहां उपलब्ध है:

http://spoken-tutorial.org/NMEICT- Intro

11:03 यह स्क्रिप्ट विकास द्वारा अनुवादित है। हमसे जुडने के लिए धन्यवाद।

Contributors and Content Editors

Jayarastogi, Shruti arya