Transcript for:
उप्स (OOP) का परिचय और सिद्धांत

उप्स का मतलब है object oriented programming ये एक programming paradigm है कहने का मतलब है programming करने का एक तरीका है इस तरीके के अंदर हम deal करते है classes and objects से अगर कलगोगी पुछता है उप्स का मतलब क्या है उप्स का मतलब है एक programming करने का तरीका जिसके अंदर हम deal करते है classes and objects के साथ मैंने आप���ो starting ही मताया था कि java के अंदर हम सब कुछ class के अंदर लिखते हैं ठीक है, class क्या है, ऐसे बताइए, एक blueprint है, क्या है, एक blueprint है, आप अपनी आँखों से जितनी भी चीज़े देख रहे हैं आपके चारों तरफ, सब क्या है, objects हैं, ठीक है, आप जिस screen के help से इसको देख रहे हो, जैसे माल लीजिए laptop है, तो laptop भी क्या है, एक object है, या फिर phone है, phone उसका एक object create करते हैं जैसे मान लीजिए आपको एक car design कर रहे हो तो car बनाने से पहले एक blueprint होगा उसमें सब कुछ लिखा होगा कि हाँ बई इसकी क्या-क्या properties होगी और ये क्या-क्या कर सकती है सिंपल सी बात है ठीक है जैसे कि एक car है तो उसके कुछ properties होगी sir कि sir क्या brand है, क्या model है, क्या color है, क्या max speed है ठीक है और कुछ behavior होगा sir accelerate करेगी हो, sir brake मारेगी ठीक है तो ये क्या behavior है दुनिया में कोई भी object ले लीजे दो चीज़े होंगी sir properties and behavior फिर से बोल रहो हूँ properties and behavior जैसे कि अभी बताया मैंने car की properties क्या होंगी sir model number क्या है, brand क्या है maximum speed क्या है, car का color क्या है behavior क्या है sir accelerate कर रही है, break दबा रहे है उसकी behavior है, ठीक है, तो object के पास properties and behavior हैं अच्छा, लेकिन वो properties जो हैं, वो कहाँ पर डिफाइन होंगे सर ब्लूप्रिंट में जो आपने बनाया है स्टार्टिंग में जब भी हम कुछ ऑब्जेक्ट क्रिएट करेंगे तो पहले एक ब्लूप्रिंट क्रिएट करेंगे तो जावा की भाषा में जो ब्लूप्रिंट है वो क्या है क् class बना रहे हैं, class का मतलब क्या है, एक blueprint create करने जा रहा हूँ, ठीक है, क्या होगा सर, color क्या है car का, brand क्या है सर, model क्या है, year क्या है सर, यह बताईए मेरे को, ठीक है, तो एक हमने blueprint तैयार कर लिया है इसका, फिर कुछ behavior होगा, behavior मैंने कहा बढ़ा behavior, कि कुछ property है car की, जब दोड़ेगी तो speed भी तो होगी उसकी, सही बात है, अच्छा, तो ये क्या है, ये properties है, अब properties, तो ठीक होई दिक्कत नहीं है, दूसरी चीज़ क्या है, behavior कुछ काम करेगी, अच्छा, ये जो काम करते हैं हम, java के अंदर, ठीक है, उसको दिखाने का तरीका क्या ह क्या चलाता है main method चलाता है कुछ काम करता है लेकिन यहाँ पर क्या हम car के behavior के बात कर रहे हैं हम उसको लिखेंगे as methods जैसे कि यह एक method लिख दिया है मैंने public void क्या है इसा पता नहीं लेकिन क्या है एक method है ठीक है हम समझेंगे next lecture में कि methods क्या होते हैं लेकिन देखेंगे speed को बढ़ा रहा है यह कुछ काम कर रहा है इसलिए हम इसको method बनाया फिर दूसरा क्या है break लगा रहे हैं सर हम speed को कम कर रहा है तो कुछ काम कर रहे हैं तो यह क्या है behavior है behavior को java के अंदर क्या लिखते है method तो यह क्या है यह एक car का blueprint है यह कोई भी car अगर हमें create करनी होगी तो मैं इसकी help से कर सकता हूँ कर लेते हैं car एक नई class बना लेते हैं test किसी भी java application का एक entry point होता है जो की है main method तो यहाँ पे देखो अब मैं car car is equal to new car जैसे स्ट्रिंग में करते थे हम, आपको याद होगा, तो मैं एक ब्लूप्रिंट की हेल्प से एक नया कार का ओब्जेक्ट बना रहा हूँ, मैं कार का कलर सेट कर सकता हूँ, कार की स्पीड कितनी है फिलाल, इस मॉमेंट आफ टाइम पे, कर देते हैं, इससे 40 है, कार की ब्र object की जो कि blueprint से हमने create किया है, सबी बात है, मैं अब accelerate करा सकता हूँ, sir, accelerate, यह क्या है, एक method है, क्या है, method है, देख रहे हो, यह मैं call करा रहा हूँ, उससे क्या होगी, इसकी speed बढ़ जाएगी, अगर मैं लिखता हूँ ना यहाँ पर, car.accelerate 1, तो इस समय, car की speed बढ़ गई है by 1, अगर मै उप्स के अंदर हम deal करते हैं with classes and objects एक चीज़ ना आगिये, चार principles हैं उप्स के, encapsulation abstraction, inheritance and polymorphism इनका overview देखते हैं, फिर बारी से separate lecture में हम पढ़ेंगे सब कुछ अभी भी हमने class and object जो पढ़ाया है, उसका overview ही लिया है next lecture में हम methods पढ़ेंगे then जो मैंने अभी चार principles पढ़ा कि सर हम class के साथ खेल रहे हैं, and objects के साथ खेल रहे हैं, right, यह हमने पढ़ लिया है, then हम पढ़ने जा रहे हैं, sir, चार pillars हैं, चार principles हैं उपस के, पहला है encapsulation, दूसरा है inheritance, तीसरा है polymorphism, and then चोथा है abstraction, encapsulation का मतलब है bundling of data and methods into a single unit, अब इसका यहाँ पर हमने एक class लिए right और उसमें ये data है ये क्या है ये methods है ये क्या है fields है और data ये क्या है behavior या फिर methods हमने इनको bundle कर दिया है capsule में बंद कर दिया है ठीक है किसके अंदर बंद कर दिया है एक single unit के अंदर बंद कर दिया है और जो unit जो है इसको हम बोलते हैं क कुछ नहीं है, इसका मतलब यह है कि सर हमने data और methods को एक class के अंदर बंद कर दिया है, ताकि इन data को जो हम नहीं चाह रहे हैं, basically जो हम नहीं चाह रहे हैं, expose करना, वो हम expose ना करे, कहने का मतलब क्या है, माल लीजिए कोई object बना, ठीक है, year लिखा हमने उसका, ठीक है, यहाँ प यहाँ पर change कर पा रहा हूँ sir, इसको clearly, मालो यहाँ पर कर रहा हूँ मैं नीचे, उपर ही कर सकता हूँ obviously, लेकिन मैं नीचे कर रहा हूँ, 2030 लिख दिया, कहने का मतलब क्या है, object create कर दिया हमने, set कर दी properties, लेकिन फिर जो property set नहीं करनी थी, reset नहीं करनी थी, उसको reset कर पा रहे अगर आपको चीजे हाइड करनी है, तो आप हाइड कर सकते हो, and this comes under encapsulation, कि encapsulation क्या कर रहा है सर, bundle कर दे रहा है, और data hide भी कर दे रहा है, data hide किसके help से करोगे सर, private के help से, देख रो, जब भी हम कोई class लिखते हैं, तो हम public लगाते हैं, right, यानि कोई भी आकर, कोई भी आकर कार का ऑब्जेक्ट क्रिएट कर सकता है जैसे कि यहां पर मैंने कर दिया राइट कार का ऑब्जेक्ट कर दिया लेकिन हम नहीं चाहते हैं कि कोई भी आकर इयर को चेंज कर दें तो मैंने प्राइवेट कर दिया और देखिए प्राइवेट करते ही यहां पर भी यहाँ पर भी हम क्या करते हैं, सभी, सभी fields को, सभी fields को private ही रखते हैं, और सब कुछ private हो जाएगा, तो फिर set कैसे करेंगे, बताता हूँ, set करते हैं हम, getters and setters की help से, यह होते हैं methods, जैसे कि यहाँ पर लिखे हैं यह, यह होते हैं methods, getters and setters, बताता हूँ, यहाँ पर, generate पे click करता हूँ, getters and setters पे click करता हूँ, सारी fields select कर लेता हूँ, ok कर देता हूँ, देख रहे हो, तो हमने क्या किया है, तो हमने सारी fields को private कर दिया है, कि sir directly आप access नहीं कर सकते हैं, लेकिन अगर आपको access करना है, तो methods के थूँ आप कर पाएंगे, ठीक है, ok, तो जैसे माल लेजे, आप model तो change नहीं कर पाएंगे, तो set model वाला method आप permanently हटा सकते हैं, कि कल को आपका कोई model ही change ना कर दे ठीक है, set year वाला method आप हटा सकते हैं, कोई कल को आकर year ही change ना कर दे ठीक है, तो यह है encapsulation कि सर आप क्या कर रहे हो डेटा हाइड कर दे रहे हो ठीक है चीजें सेट कैसे होंगे वह बाद में देखेंगे वह बाद की दिक्कत है अब हमने मैथड नहीं पढ़ा है हम ऑवरव्यू ले रहे हैं हमने एंकैप्सुलेशन का ऑवरव्यू ले लिया हमने देख लिया है कि डेटा को बंडल कर रहे हैं बेसिकली हम ठीक है और चीजों को हाइड कर रहे हैं चीजों को हाइड कर रहे थे और कुछ मत सोचिए कि क्या हो रहा है यह नीचे और कुछ मत सोचिए गैटर्स एंड सेटर्स क्या होते हैं हमने यह कर लिया है कि सर जो हम चाहा रहे हैं, वो हमने hide कर दिया है, private कर दिया है, और देखो हमने set करने वाले method भी, जिससे set होगी चीज़े, वो हमने हटा दिये हैं, जैसे कि हमने set model, set year हटा दिया है, अपनी इच्छा अनुसार हमने चीज़ों को hide कर दिया है, इसी को बोलते ह data hiding, ठीक है, sir, दूसरा आता है, inheritance, sir, ये inheritance क्या है, देखो, inheritance में आता हूँ, एक काम करते हैं, test में से इसको हटाईए, ठीक है, और car को भी delete मारते हैं, ठीक है, car को भी delete मारते हैं, छोटा से example दूँगा बस में, ठीक है, एक java class बना लिए हमने, animal, ठीक है, एक java class cat, ठीक है, sir, animal, animal का कुछ नाम होगा, string name ले लिया हम, ठीक है, कुछ उम्र होगी, age ले लिया हम, अच्छा अब cat की breed होती है right cat की breed होती है ब्रीट ले लिया हम नहीं ठीक है अब मेरे को एक बात बताईए sir बताईए कि sir animal में name और age है ठीक है cat में भी है तो मैं copy कर लेता हूँ चलो ठीक है मैं खुश हो गया ठीक है अच्छा लिक्कन यार एक और काम तो कर सकते हैं हम हम क्या कहेंगे कि cat जो है ना cat जो है वो child class है और वो कुछ properties अपनी parent class से ले रही है हम कह सकते हैं कि extend कर रही है cat class किसको animal class को कहने का मतलब है inherit कर रही है inheritance allows one class one class जो कि यहाँ पे cat है to inherit some properties or behaviors from parent class from parent class code reusability achieve हो रही है यहाँ पे समझ रहे हो हमें बार यहाँ पर मालो कल को dog किया तो dog में फिर हमें name and age नहीं लिखना पड़ेगा समझ रहे हो हमने बस यह लिखना पड़ेगा कि वो extend करती है animal को इससे क्या होगा मैं बताता हूँ आपको अगर मैं यहाँ पर cat is equal to new cat करता हूँ तो देखना आप कहेंगे कि cat में कितनी fields हैं इनको fields बोलते हैं, इनको data बोलते हैं, इनको variable बोलते हैं, देखेंगे, ठीक है, अभी हम सोच ये, अभी concept समझ ये, ठीक है, अभी बस उपर से बोल रहो, ये है क्या मेरे को नहीं पता, बस मुझे पता है, विशेशता है कुछ ये, क्या है विशेशता, variable मेरे को कुछ लेकिन cat के अंदर क्या है सिर्फ उसकी breed है अच्छा लेकिन अगर मैं cat. करता हूँ तो देख रहे हो age भी आ रही है और name भी आ रही है set भी कर सकते हैं हम यहाँ पे कुछ भी है न cat. name bob ऐसे ठीक है तो कहने का मतलब क्या है कि cat ने cat ने inherit कर ली है चीजें from parent class जैसे कि हम क्या करते हैं हम inherit कर लेते हैं गंजापन मैंने inherit कर लिया है ठीक है तो यह चीजें होती है ठीक है तो हम क्या सीख रहे हैं, यहाँ पर inheritance सीख रहे हैं, तो encapsulation हो गया है, inheritance हो गया है, sir, अब देखते हैं polymorphism, code पर मज़ जाए, धिहान से सुनियो, धिहान से code पर मज़ जाए, क्या लिख रहा हूँ मैं, concept समझिए, बारी से हम देखेंगे, हर चीज, ठीक है, चलिए animal को कि यह क्या लिखा है, बस हमें पता है कि हाँ भी यह क्या है, make sound का है कुछ, कि हाँ भी animal जो है, आवाज करता है कुछ, और यहाँ पे मैं लिख दे, some sound, ठीक है, कोई दिक्कत नहीं है, फिर बिल्ली की बात करता है, बिल्ली extend कर रही है animal को, ठीक है, और obviously animal उसको extend करा देते हैं animal को obvious ही बात है और वो भी क्या करेगा वो भी क्या करेगा अवाज निकालेगा woof की सही बात है उसके पास अपना एक make sound method होगा cat के पास अपना एक make sound method है animal के साथ अपना एक make sound method है अब देखो ध्यान से यहाँ पे क्या लिखा है to overrides to overrides बोल रहा है कि सर दो inheritors हैं, दो बच्चे हैं इसके, दोनों ने अपनी क्या कर ली है, अपनी definition लिख ली है, किसकी make sound की, ठीक है, override कर लिया है, animal का method, parent class का method override कर लिया है, माल लेते हैं आपके पिताजी क्या है, आपके पिताजी लंबे हैं, ठीक है, लेकिन आपने अपनी height override कर लिये हैं, और आपके height छोटी रह गई है, एक तरह से माल लीजे, ठीक है, तो cat क्या आवाज निकाल रहा है, उसकी तो क्या कर रहा है, override कर दे रहा है animal के make sound method को, सही बात है, ऐसी dog भी override कर दे रहा है make sound method को animal के, ठीक है, अब देखें, polymorphism क्या है, ध्यान से देखना, animal dog is equal to new dog, ये क्या कर दिया सर, अभी तक तो मैं ये करता हुआ आ रहा हूँ, dog d is equal to new dog, समझ रहे हो, कि सर, reference, reference भी dog का है, object भी dog का है, अभी तक तो मैं यह करता हूँ हो रहा हूँ, लेकिन यहाँ पे देखने वाली बात यह है, कि object मैं create कर रहा हूँ, किसका, dog का, लेकिन reference क्या है, reference है animal का, समझ रहे हो बात को, ऐसा क्यों कर पा रहा हूँ मैं, क्योंकि यह क्या है, यह क्या है, super class है, यह parent class है, parent class को super class बोल लेता है, ठीक है, और यह क्या है, child class है, यही polymorphism है, sir, यही polymorphism है, कि देखे, subclass के object को आप treat कर सकते हो as instance of its superclass, this means you can assign, you can assign subclass के object को to reference of superclass, आती है बासमन में, तो अगर मैं dog.make sound लिखता हूँ, यह dot word का मतलब अभी मारे गोली, बस यह सोचे, कि dog पर मैं कुछ काम करवा रहा हूँ dog से, ठीक है न, dog से मैं कुछ काम करवा रहा हूँ, make sound जो हमने अभी method लिखा था run करता हूँ, तो देखो क्या है यहां से देखना, woof आ रहा है, woof आ रहा है समझ रहे हो, dog किसका reference है किस type का reference variable है animal type का, animal में क्या लिखा हुआ है some sound, लेकिन चला क्या है क्योंकि जो object है, वो किस type का है dog type का है लेकिन जो reference variable है वो किसका है super class का कोई दिक्कत नहीं है तो ये क्या है polymorphism ठीक है अभी कुछ समय नहीं आया कोई दिक्कत नहीं है then आता है हमारा last वाला abstraction ठीक है तो हम देखेंगे अब abstraction क्या होता है abstraction में कोई मैं example नहीं दूँगा अभी for obvious reason क्योंकि समय नहीं आया abstraction में मैं real life का example देता हूँ sir दिहान से सुनिएगा ये क्या है ये आपका एक tv है sir tv और ये माल लेते हैं क्या है इसका remote है बहुत बड़े remote है sir ठीक है हमें जरूरी नहीं है हमें जरूरी कता ही नहीं है कि हमें पता हो कि TV internally कैसे काम करता है हम बस remote use कर लेंगे और हम खुश हो जाएंगे right तो ये है कि sir जो internal complexity है वो hide कर दी गई है ठीक है और हम interact करेंगे only using remote only using remote हमें बिल्कुल भी जरूरत नहीं है कि हमें पता चले कि sir internally क्या काम हो रहा है तो इसे ही बोलते हैं कि sir abstraction abstraction को हिंदी में क्या बोलते हैं hiding implementation details यानि की अंदरूनी details को छिपाना ताकि हमारे लिए आसान हो जाए चीजें ये code में कैसा दिखेगा वो अभी हमारे लिए tension की बात नहीं है ठीक है इसको हम next lecture से देखेंगे ठीक है तो अभी तक हमने इस lecture में overview ले लिया है कि sir उप्स है क्या ये उप्स है क्या उप्स हमने देखा कि sir एक programming करने का तरीका है जिसमें हम class और objects के साथ खे ठीक है, फिर हमने देखा encapsulation, कि सर hide करनी है चीज़ें, inheritance, कि सर super class, child class, parent class है न, ये सब चीज़ें, polymorphism, कि सर animal dog, यहाँ रखना, animal dog is equal to new dog, कि सर object किसी type, लेकिन reference किसी और type का है, ये है polymorphism, abstraction का मतलब है, कि hiding internal details, जैसे कि remote मैंने बताया, TV मैंने बताया, अब जैसे example मान लीजिए abstraction का आप car चला रहे हो, आप gate change कर रहे हो, तो ऐसा थोड़ी है कि आप सीशा खोल के, इनजन खोल के gate change कर रहे हो, आपको तो बस उपर से change कर देना है, gate change जाएगा, right, तो यह है abstraction, hiding internal details, सर शायद आप सोच रहोंगे, उपस तो हमने पढ़ लिया, अच्छी बाता overview ले लिया है, और हमने बोला कि एक तरीका है, टेकनीक है लिखने का, ठीक है, style है, अपना अपना, ठीक है, यार और भी style होते हैं, हाँ सर होते हैं न, imperative होता है, imperative, imperative होता है, declarative होता है functional होता है, functional functional, यह सब होते हैं, उन में से एक उप्स भी है, imperative जैसे कि line by line हम लिखते हैं क्या करना है, जैसे कि अभी तक हम करते हुए आयें, right, जैसे कि C language माल लीजिए, आपने C language पढ़ रहे हैं, तो आप लिखते हुए ना उसमें कि sir, अभी integer में define कर रहा हूँ ऐसे करके, फिर मैं loop लिखूँगा कि क्या करना है, right, यह तो basic है यह तो style है सबी language का imperative functional क्या है जैसे माल लीजिए, हम भी हमने methods पढ़े ही नहीं है, लेकिन अभी एक थोड़ा सा मैंने overview दे दिया, जैसे कि एक method है, public static voidment, तो हमने कम से कम लिखा ही हुआ है, public static voidment, ये क्या है, method है, अभी तक हमने क्या पढ़ा हुआ है इसमें, functional में क्या करते हैं, functional में, function को हम variable के अंदर store करा सकते हैं, जैसे कि अब int a is equal to 1 लिखते हैं, तो ऐसे हम, function को a something, something a is equal to, to ये लिख सकते हैं, ऐसे, यानि कि variable की तरह treat कर सकते हैं, function को भी, exactly syntax ये नहीं होता है, लेकिन ये क्या कह रहो हूँ मैं, functional paradigm की बात कर रहो हूँ, functional paradigm की बात कर रहो हूँ, कि जैसे oops है, ऐसी ये बहुत सारे ऐसे paradigms हैं, उसमें से one क्या है, oops है, oops के अंदर क्या करते हैं, हम खेलते हैं, classes and objects के साथ, मिलते हैं next वीडियो में, और आप से request है कि consider subscribing, इतना बढ़िया कोई content नहीं देगा market में कोई नहीं देगा इतना बढ़िया content इसकी मेरी guarantee है जनता ले रही है 10,000 रुपे 20,000 रुपे 50,000 रुपे मैं free में content provide करा रहा हूँ sir ठीक है हम बच्चपन में पढ़ते थे न showing some gratitude doing some good work तो sir subscribe करना एक आपके लिए क्या है good work ही है ठीक है if you are subscribing then you are supporting free education मिलते हैं next video में