Java/C3/Subclassing-and-Method-Overriding/Hindi
From Script | Spoken-Tutorial
|
|
00:01 | नमस्कार, Subclassing and Method overriding. पर स्पोकन ट्यूटोरियल में आपका स्वागत है। |
00:06 | इस ट्यूटोरियल में हम सीखेंगे: subclassing , extends कीवर्ड और method overriding. |
00:15 | यहाँ हम उपयोग कर रहे हैं: ऊबंटु लिनक्स वर्जन 12.04, JDK 1.7, Eclipse 4.3.1 |
00:25 | इस ट्यूटोरियल का अनुसरण करने के लिए, आपको Java' और Eclipse IDE का बुनियादी ज्ञान होना चाहिए। |
00:32 | यदि नहीं है तो, संबंधित Java ट्यूटोरियल्स के लिए, कृपया हमारे वेबसाइट पर जाएँ। |
00:37 | सबसे पहले, हम सीखेंगे कि subclassing क्या है। |
00:41 | यह एक मौजूदा class से नए class बनाने का एक तरीका है। |
00:46 | नया क्लास subclass या derived class या child class बनता है। |
00:53 | पहले से ही मौजूद क्ला को superclass या base class या parent class कहते हैं। |
01:00 | अब, मैं आपको दिखाती हूँ कि subclass कैसे बनाना है। मैंने पहले से ही MyProject नामक एक प्रोजेक्ट बनाया है। |
01:10 | मैंने इसमें Employee नामक एक क्लास बनाया है। |
01:15 | इसमें वैरिएबल्स name और email_addressहै। |
01:19 | इसमें क्लास के लिए setter और getter मैथड भी है। |
01:24 | इसमें "getDetails()" मैथड है। यह मैथड "name" और "email_address" रिटर्न करता है |
01:31 | अब, Manager क्लास पर आते हैं। |
01:35 | इसमें वैरिएबल्स , name, email_address और department. है। |
01:40 | हम देख सकते हैं कि कुछ वैरिएबल्स Employee और Manager class दोनों में समान हैं। |
01:47 | name और email_address Employee क्लास में हैं। हम देख सकते हैं कि ये Manager क्लास में भी हैं। |
01:57 | इस प्रकार, Manager क्लास को Employee क्लास का subclass बनाया जा सकता है। |
02:03 | इसके लिए, हमें Manager क्लास में कुछ परिवर्तन करना होगा। |
02:08 | public class Manager के बाद, टाइप करें : extends Employee |
02:14 | हम मौजूदा क्लास से subclass बनाने के लिए extends कीवर्ड का उपयोग करते हैं। |
02:21 | दोनो क्लास में समान डुप्लिकेट वैरिएबल्स को हटाएँ। |
02:26 | अत:, Manager क्लास से name और email_address हटा दें। |
02:32 | इसके अलावा setter और getter मैथड भी हटा दें। |
02:37 | Manager क्लास में, हमारे पास केवल एक department वैरिएबल होगा। |
02:43 | हमारे पास department के लिए setter और getter मैथड भी है। |
02:59 | इस तरह, Manager क्लास Employee क्लास के मैंबर्स को संभालता है। |
02:55 | एक क्लास को अन्य क्लास में विस्तार करने का यह तरीका single inheritance कहलाता है। |
03:02 | मैंने एक अन्य TestEmployee नामक क्लास भी बनाया है। |
03:08 | Main मैथड में, हम Manager क्लास का object बनायेंगे। |
03:14 | अत:, main मैथड में, टाइप करें Manager manager equal to new Manager parentheses |
03:23 | फिर, हम Manager क्लास के setter मैथड को कॉल करेंगे। |
03:28 | तो, टाइप करें manager dot setName ब्रैकेट में, और डबल कोट्स में Nikkita Dinesh |
03:38 | फिर टाइप करें: manager' dot setEmail ब्रैकेट्स और डबल कोट्स में abc at gmail dot com |
03:49 | फिर टाइप करें: manager dot setDepartment ब्रैकेट्स में और डबल कोट्स में Accounts |
03:57 | आप कोई भी name, email address और department उपयोग कर सकते हैं। |
04:02 | अब, Manager ऑब्जेक्ट्स का उपयोग करके getDetails() मैथड को कॉल करते हैं। |
04:08 | अत:, टाइप करें: System.out.println ब्रैकेट्स में manager dot getDetails |
04:17 | अब, प्रोग्राम को सेव और रन करें। |
04:21 | हम देख सकते हैं कि हमें आउटपुट प्राप्त हुआ है:
Name: Nikkita Dinesh Email: abc@gmail.com |
04:30 | यहाँ, Manager क्लास का ऑब्जेक्ट getDetails() मैथड को कॉल करता है। |
04:36 | अब, Manager क्लास पर आएँ। |
04:39 | हम देख सकते हैं कि यहाँ getDetails() मैथड नहीं है। |
04:43 | लेकिन, फिर भी हमें आउटपुट प्राप्त हुआ है। यह इसलिए क्योंकि, Manager क्लास Employee क्लास का विस्तार करता है। |
04:52 | Manager क्लास स्वचालित रूप से Employee क्लास के वैरिएबल्स और मैथड्स को बनाता है। |
04:59 | अत:, यह parent क्लास की जाँच करता है जो कि Employee है। |
05:04 | Employee क्लास पर वापस आते हैं। यह यहाँ getDetails() मैथड प्राप्त करता है। |
05:11 | ध्यान दें, हमने department रिटर्न नहीं किया है। फलस्वरूप, यह आउटपुट में department प्रिंट नहीं करता है। |
05:20 | अब, getDetails मैथड को private में बदलते हैं। फाइल को सेव करें। |
05:27 | हम देख सकते हैं कि हमें TestEmployee क्लास में एक संकलन एरर मिलती है। |
05:34 | यह दर्शाता है: "The method getDetails() from the type Employee is not visible". |
05:40 | इसका मतलब है कि getDetails() मैथड का उपयोग नहीं किया जा सकता है। |
05:45 | यह इसलिए क्योंकि हमने getDetails() मैथड को private किया था। |
05:52 | subclass इसके superclass के private मैंबर्स को नहीं संभालता है। |
05:58 | Subclass superclass के private मैंबर्स को सीधे एक्सेस नहीं कर सकता है। |
06:04 | superclass public या protected मैथड हो सकता है। |
06:09 | ये मैथड्स उसके private फिल्ड्स को एक्सेस कर सकते हैं। |
06:13 | subclass इन मैथड्स के माध्यम से private फिल्ड्स को भी एक्सेस कर सकता है। |
06:18 | अत: इसे public में वापस बदलते हैं। |
06:21 | अब, Manager क्लास में getDetails मैथड सम्मिलित करते हैं। |
06:27 | यह मैथड name, email_address और department. रिटर्न करेगा। |
06:33 | अत:, टाइप करें public String getDetails ब्रैकेट्स |
06:39 | मैथड में टाइप करें: return ब्रैकेट्स में Name plus getName() plus slash n plus Email plus getEmail() plus slash n plus Manager of plus getDepartment() सेमिकॉलन। फाइल को सेव करें। |
07:07 | ध्यान दें कि अब, हमारे पास getDetails मैथड Manager और Employee दोनों क्लास में है। |
07:15 | मैथड का name, return type और argument list दोनों क्लासेस में समान है। |
07:22 | subclass में मैथड parent क्लास में मैथड को override करने को कहता है यदि:
name return type argument list बिल्कुल समान हो। |
07:33 | Manager क्लास पर वापस आएँ। |
07:36 | getDetails() मैथड से पहले टाइप करें: @Override |
07:43 | यह एक override annotation है। यह इंगित करता है कि मैथड superclass में मैथड को override करने के लिए अभिप्रेत करता है। |
07:53 | अब, देखते हैं कि annotation क्या है। |
07:57 | Annotations:
at (@) चिन्ह कैरेक्टर से साथ शुरू होता है प्रोग्राम के बारे में डेटा प्रदान करता है कोड के ऑपरेशन पर कोई सीधा प्रभाव नहीं डालता है |
08:10 | यदि मैथड @Override के साथ annotate है, कंपाइलर एरर उत्पन्न करता है यदि: superclass में घोषित मैथड override नहीं करता है। |
08:23 | method signature इसके superclass से भिन्न है। |
08:28 | अब, IDE पर वापस आएँ। Manager क्लास पर वापस आएँ। |
08:34 | at (@) चिन्ह कैरेक्टर कंपाइलर को इंगित करता है कि annotation के बाद क्या होता है। |
08:42 | यहाँ, यह दर्शाता है कि getDetails() मैथड overridden है। |
08:48 | TestEmployee क्लास पर वापस आते हैं। |
08:51 | फाइल को सेव करें और प्रोग्राम रन करें। |
08:55 | हमें निम्न आउटपुट प्राप्त होता है:
Name: Nikkita Dinesh Email: abc@gmail.com Manager of Accounts |
09:05 | यहाँ, Manager क्लास का ऑब्जैक्ट getDetails() मैथड को कॉल करता है। |
09:11 | लेकिन इस समय, यह स्वयं Manager क्लास के मैथड को कॉल कर रहा है। |
09:16 | इस तरह, हम subclass द्वारा parent क्लास के मैथड को override कर रहे हैं। |
09:23 | संक्षेप में। इस ट्यूटोरियल में हमने सीखा:
Subclassingऔर Method Overriding. |
09:31 | नियत-कार्य के रूप में, एक Vehicle क्लास बनाएँ, जिसमें run मैथड हो, जो कि “The Vehicle is running.” प्रिंट करे। |
09:40 | एक Bike क्लास भी बनाएँ, जिसमें run मैथड हो, जो कि “'The Bike is running safely.” प्रिंट करे। |
09:48 | आउटपुट “The Bike is running safely” होना चाहिए। |
09:52 | स्पोकन ट्यूटोरियल प्रोजेक्ट के बारे में अधिक जानकारी के लिए, निम्नलिखित लिंक पर उपलब्ध वीडियो देखें। यह स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है। यदि आपके पास अच्छा बैंडविड्थ नहीं है, तो आप इसे डाउनलोड कर देख सकते हैं। |
10:06 | स्पोकन ट्यूटोरियल प्रोजेक्ट टीम- स्पोकन ट्यूटोरियल का उपयोग कर कार्यशालाएं आयोजित करती है। ऑनलाइन परीक्षा पास करने वालों को प्रमाण पत्र देती है। अधिक जानकारी के लिए, कृपया contact@spoken-tutorial.org पर लिखें। |
10:21 | स्पोकन ट्यूटोरियल प्रोजेक्ट Talk to a Teacher प्रॉजेक्ट का हिस्सा है। यह आईसीटी के माध्यम से राष्ट्रीय शिक्षा मिशन,एमएचआरडी, भारत सरकार द्वारा समर्थित है। इस मिशन पर अधिक जानकारी यहां उपलब्ध है: |
10:42 | यह स्क्रिप्ट विकास द्वारा अनुवादित है। IIT Bombay से मैं जया आपसे विदा लेती धन्यवाद। |