Difference between revisions of "Java/C3/Polymorphism/Sanskrit"
NaveenBhat (Talk | contribs) (Created page with " {| Border=1 | '''Time''' | '''Narration''' |- | 00:01 |जावा मध्ये '''Polymorphism''' इति '''spoken-tutorial ''' प्रति स्वागतम...") |
NaveenBhat (Talk | contribs) |
||
Line 30: | Line 30: | ||
| 00:43 | | 00:43 | ||
| नास्ति चेत् तत्सम्बद्धपाठार्थं अस्माकं जालपुटे अधस्तन लिङ्क् पश्यन्तु । | | नास्ति चेत् तत्सम्बद्धपाठार्थं अस्माकं जालपुटे अधस्तन लिङ्क् पश्यन्तु । | ||
+ | |- | ||
| 00:48 | | 00:48 | ||
| '''Polymorphism''' इतीदं, नाना रूपाणि प्राप्तुं '''object''' इत्यस्य सामर्थ्यं वर्तते । | | '''Polymorphism''' इतीदं, नाना रूपाणि प्राप्तुं '''object''' इत्यस्य सामर्थ्यं वर्तते । |
Revision as of 20:59, 20 November 2019
Time | Narration |
00:01 | जावा मध्ये Polymorphism इति spoken-tutorial प्रति स्वागतम् । |
00:06 | पाठेऽस्मिन् वयं एतेषां ज्ञानं प्राप्नुमः :
जावा मध्ये Polymorphism Run-time polymorphism Virtual Method Invocation अपि च Compile-time polymorphism |
00:19 | वयमत्र :
Ubuntu Linux Version 12.04 JDK Version 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 इत्यस्य प्रधान लाभाः :
1. क्लिष्टतायाः निवारणम् अपि च 2. कोड् इत्यस्य पुनरुपयोगः |
01:03 | Javaमध्ये, द्विप्रकारकस्य 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 | final keyword पाठमुपयुज्य कोड् फैल्स् इतीमानि स्वीकुर्मः । |
01:49 | Employee क्लास् इतीदं पेरेण्ट् क्लास् वर्तते । |
01:52 | Manager क्लास् इतीदं सब्-क्लास् वर्तते । |
01:55 | Manager क्लास् इतीदं, department नाम्नः एडिशनल् वेरियेबल् प्राप्तवदस्ति । |
02:01 | Manager क्लास् मेथड् getDetails()इतीदं, Employee क्लास् मेथड् getDetails() इतीदं override करोति । |
02:08 | वयं Manager क्लास् ओब्जेक्ट् अर्थात् Manager द्वारा, getDetails() मेथड् इतीदं काल् कुर्मः । |
02:16 | विवरणानां मुद्रापणार्थं system.out.println Details of Manager Class च टङ्कयन्तु । |
02:28 | प्रोग्राम् इतीदं सेव् कृत्वा रन् कुर्वन्तु । अतः वयं फलिते department वेरियेबल् इत्यस्य मूल्यं दृष्टुं शक्नुमः । |
02:37 | अतः सब्-क्लास् मेथड् इतीदं रन् करणे इन्वोक् जातम् । |
02:42 | मेथड् इन्वोकेशन् इतीदं JVM द्वारा निर्धारितं न कम्पैलर् द्वारा । |
02:48 | अतः इदं Runtime polymorphism अथवा method overriding इति कथ्यते । |
02:55 | Run time polymorphism नाम किमिति वयं ज्ञातवन्तः । |
02:58 | अधुना वयं Virtual Method Invocation इत्यस्य विषयं ज्ञास्यामः । |
03:03 | अतः एक्लिप्स् ऐ डि ईमध्ये, Employee क्लास् प्रति आगच्छन्तु । |
03:07 | वेरियेबल् नाम्ने static अपि च final कीवर्ड्स् निष्कासयन्तु । |
03:13 | setNameमेथड् इतीदम् अन्-कमेण्ट् कुर्वन्तु । |
03:16 | static ब्लोक् इतीदं निष्कास्य सञ्चिकां सेव् कुर्वन्तु । |
03:21 | TestEmployee क्लास् प्रति आगच्छन्तु । manager.setName(“Nikkita Dinesh”); इति वेल्यु-इन्स्टेन्स् इतीदम् अन्-कमेण्ट् कुर्वन्तु । |
03:31 | यतः वयं Empolyeeक्लास्-मध्ये, setName() मेथड् इतीदं अन्-कमेण्ट् कृतवन्तः, ततः इदम् इन्स्टेन्स् अपि अन्-कमेण्ट् कृतवन्तः । |
03:38 | अधुना एम्प्लोयीक्लास् रेफ़रेन्स् इत्यस्मै, emp1 इति एम्प्लोयी ओब्जेक्ट् इतीदम् इन्स्टेन्शियेट् कुर्मः । |
03:46 | एवं टङ्कयन्तु Employee emp1 = new Employee open and close parenthesis semicolon |
03:57 | अधुना एम्प्लोयी क्लास् इत्यस्मै setEmail अपि च setName इत्यनयोः मूल्यम् इनिशियलैस् कुर्मः । |
04:03 | अतः emp1.setName("Jayesh"); emp1.setEmail("pqr@gmail.com"); इति टङ्कयन्तु । |
04:16 | एम्प्लोयी डीटेल्स् इतीदं मुद्रापयितुम् एवं टङ्कयन्तु System.out.println("Details of Employee class:" emp1.getDetails()) semicolon |
04:37 | अधुना Employee क्लास् रेफ़रेन्स् इत्यस्मै, मेनेजर् ओब्जेक्ट् emp2 इतीदम् इन्स्टेन्शियेट् कुर्मः ।
अतः Employee emp2 = new Manager open and close parenthesis semicolon इति टङ्कयन्तु । |
04:54 | यत्किमपि जावा ओब्जेक्त्, यत् एकाधिकं IS-A टेस्ट् पास् करोति तत् polymorphic (पोलिमोर्पिक्) वर्तते, इत्यतः वयमिदं कर्तुं शक्नुमः । |
05:04 | जावा मध्ये सर्वाणि ओब्जेक्ट्स् पोलिमोर्पिक् वर्तन्ते, यतः यत्किमपि ओब्जेक्ट् तस्य प्रकारकाय, क्लास् ओब्जेक्ट् इत्यस्मै च, IS-A टेस्ट् पास् करिष्यति । |
05:16 | A Manager IS-A Employee
A Manager IS-A Manager A Manager IS-A Object. |
05:23 | एकस्य ओब्जेक्ट् इत्यस्य एक्सेस् करणाय विद्यमानः एकैकः मार्गः रेफ़रेन्स् वेरियेबल् द्वारा वर्तते । |
05:29 | रेफ़रेन्स् वेरियेबल्स् नाम emp1, emp2 अपि च manager इतीमानि । |
05:36 | वयमत्र द्वे Manager ओब्जेक्ट्स् इन्स्टेन्शियेट् कृतवन्तः ।
एकम् Employee क्लास् इत्यस्य रेफ़रेन्स् करोति । अन्यं Manager क्लास् इत्यस्य रेफ़रेन्स् करोति । |
05:47 | setEmail, setName अपि च setDepartment इत्येतेभ्यः मूल्यं emp2ओब्जेक्ट् उपयुज्य इनिशियलैस् कुर्मः । |
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()) semicolon इति टङ्कयन्तु । |
06:55 | सेव् कृत्वा रन् कुर्वन्तु । |
06:58 | अत्र फलिते वयं Manager of: इतीदं रिक्तं प्राप्नुमः । |
07:04 | किमर्थमुच्यते, वयं Manager क्लास् मध्ये emp2 इतीदमुपयुज्य, department इतीदम् इनिशियलैस् न कृतवन्तः । |
07:12 | प्रदर्शनार्थम् उत्सर्गतया डिपार्ट्मेण्ट् इतीदं IT इति स्यात् । |
07:17 | अतः Manager क्लास् गत्वा department इत्यस्य मूल्यं इनिशियलैस् कुर्वन्तु । |
07:25 | सेव् कृत्वा रन् कुर्वन्तु । |
07:28 | वयं Employee क्लास् इत्यस्य रेफ़र् क्रियमाणं Employee ओब्जेक्ट् इतीदं फलितरूपेण प्राप्नुमः । |
07:34 | Employee क्लास् इत्यस्य रेफ़र् क्रियमाणं Manager ओब्जेक्ट् इतीदं तथा Manager क्लास् इत्यस्य रेफ़र् क्रियमाणं Manager ओब्जेक्ट् इतीदं च । |
07:42 | वयं पश्यामः यत्, Managerक्लास् इत्यस्य getDetails() मेथड् इतीदं, emp2 द्वारा काल् जातम् । |
07:49 | परन्तु यदा, emp2 इतीदं setDepartment काल् कर्तुं प्रयत्नं करोति, तदा दोषः प्राप्यते । |
07:54 | अस्य कारणम् एवमस्ति :
कम्पैलर् Employeeक्लास् मध्ये, emp2.getDetails() काले, getDetails()मेथड् इतीदं पश्यति । |
08:05 | अतः इदं दोषं न दर्शयति तथा च कोड् वेलिडेशन् च करोति । |
08:10 | रन् करणकाले जे वि एम् इतीदं Manager क्लास् मध्येgetDetails() इतीदम् इन्वोक् करोति । यतःManager क्लास् इत्यस्य getDetails() इतीदं, Manager क्लास् इत्यस्य getDetails() इतीदम् ओवर् रैड् करोति । |
08:24 | वयमतः Manager क्लास् इत्यस्य getDetails() इत्यस्यानुसारेण फलितं प्राप्नुमः । परन्तु कम्पैलर् इतीदं Employee क्लास् मध्ये setDepartment इति मेथड् न पश्यति । |
08:36 | अतः emp2 द्वारा setDepartment काल् क्रियते चेत् इदं दोषं दर्शयति । |
08:43 | अत्र Employee मेथड् getDetails() इतीदं Employee क्लास् इत्यस्मै इन्वोक् कृतम् । |
08:49 | कम्पैलर् इतीदं Employee क्लास् इतीदं getDetails() इत्यस्मै emp1.getDetails() काले रेफ़रेन्स् करोति । |
08:57 | रन् काले जे वि एम् इतीदं, Employee क्लास् मध्ये getDetails() इतीदं इन्वोक् करोति । अतः वयं Employee क्लास् इत्यस्य getDetails() अनुसारेण फलितं प्राप्नुमः । |
09:08 | एवं जे वि एम् इतीदं, प्रत्येकस्मै वेरियेबल् इत्यस्मै रेफ़र् जाताय ओब्जेक्ट् इत्यस्मै, सूक्तं मेथड् काल् करोति । |
09:16 | इदं गुणं वर्चुअल् मेथड् इन्वोकेशन् इति कथ्यते । |
09:21 | मेथड्स् इतीमानि वर्चुअल् मेथड्स् इति कथ्यन्ते । |
09:26 | जावा मध्ये सर्वाणि मेथड्स् एवं कार्यं कुर्वन्ति । |
09:31 | वयं वर्चुअल् मेथड् इन्वोकेशन् नाम किमिति ज्ञातवन्तः । |
09:36 | वयं Compile-time polymorphism अर्थात् मेथड् ओवर् लोडिङ्ग् नाम किमिति ज्ञातवन्तः । |
09:42 | सङ्क्षेपेण Compile time polymorphism इत्यस्य विषयं जानाम । |
09:47 | Compile time polymorphism मध्ये, class इतीदम् एकाधिकं method प्राप्तुमर्हति । |
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 | स्पोकन् ट्युटोरियल् प्रकल्पगणः कार्यशालां चालयति अपि च , अन्तर्जालीयपरीक्षायाम् उत्तीर्णेभ्यः प्रमाणपत्रं च यच्छति । अधिकविवरणं प्राप्तुं अधस्तन पर्चन्यै लिखन्तु । |
10:51 | स्पोकन् ट्युटोरियल् प्रकल्पः, राष्ट्रिय साक्षरता मिशन्, ICT, MHRD द्वारा भारतसर्वकारस्य अनुदानं प्राप्तवानस्ति । अधिकविवरणमत्रास्ति । |
11:03 | वयं पाठस्यान्तमागतवन्तः । अनुवादकः प्रवाचकश्च श्री नवीनभट्टः उप्पिनपट्टणम् । धन्यवादाः । |