OOPs

Introduction to Object Oriented Programming Concepts in C#


अाज हम इस Article के अंतर्गत यह जानेगे की Object Oriented Programming   (OOPS) क्या होता है एवं इसका मुख्य Concept क्या है ?

मित्रो ,
जब हम किसी काम को बिना सोचे समझे  करते है तो वह कई बार वह  गलत  हो जाता है या  अव्यवस्थित हो जाता है जिससे हम अपने लिए ही मुसीबत खड़ी कर लेते है अॉर  काम करना कठिन हो जाता है ,

उसी प्रकार जब हम प्रोग्रामिंग करने जाते है तो कई
बार हम अपने Programme Code को ऐसी जगह लिख लेते है जहां हमे नही लिखना चाहिए क्योंकि हो सकता ऐसे Coding करने से हम उस कोड का शायद  दुबारा एस्तेमाल ना  कर पाए ,

या Programme की   सिक्योरिटी ना रख पाएं या फिर ऐसे लिखे हुअा प्रोग्राम को अागे मैंटेन   करना कठिन हो जाए या शायद किसी दूसरे व्यकति को अापका लिखे  हुए कोड को समझना मुस्किल हो जाए |

इन्ही सब गलतियों से बचने के लिए एवं हमारा प्रोग्राम अच्छे से चले ,समझना अासान हो एवं जिसको मैंटेन करना अासान हो के लिए किसी भी
 प्रोग्रामर को Object Oriented Programming की जानकारी होना अावश्यक है |

OOPS  के अंतर्गत विशेष रूप से पांच महत्वपूर्ण अवधारणाओं (Concepts ) को समझेंगे जिसका हम ध्यान रखेंगे जब कभी भी हम कोई प्रोग्राम लिखेंगे जिससे हम सॉफ्टवेयर को त्रुटि रहित बना सकें 
==========================================================
1.Class and Object. 
2.Abstraction 
3.Encapsulation 
4.Inheritance 
5.Polymorphism
===========================================================
1.Class and Object: 

क्लास से पहले यह जानना अावश्यक होगा की ऑब्जेक्ट क्या होता है तो मित्रो समझने के लिए अाप मान सकते है की
ऑब्जेक्ट हम किसी भी चीज को कह सकते है   जिसका  वास्तविक समय मे अस्तित्व  होता है , 
जिसका कुछ गुन/चरित्र (Characteristic ) होता है व जो , कुछ व्यवहार करता है |

 जैसे मित्रो अाप अपने अाप को एक ऑब्जेक्ट मान सकते है जिसका कुछ गुन/चरित्र है जैसे
ऊंचाई, 
कलर ,
वजन ,
जेंडर 

साथ ही साथ कुछ व्यवहार भी अाप करते है जैसे
हँसना  ,
रोना , 
गाना ,
देखना ,
सुनना ,पढ़ना |  



इसी प्रकार हम मोबाइल को भी एक ऑब्जेक्ट मान सकते है जिसका    गुन/चरित्र (Characteristic ) /Attribute होगा  जैसे
 मॉडल नंबर ,
कलर , कंपनी , 
बैटरी क्षमता ,
ऑपरेटिंग सिस्टम,
स्टोरेज कैपेसिटी

अॉर  जिसका व्यवहार होगा जैसे
कॉल करना , वीडियो दिखाना ,फ़ोटो लेना,इंटरनेट चलाना इत्यादि।

तो मित्रो अब अाप समझ गए होंगे की ऑब्जेक्ट क्या होता है |
=================================================================
मित्रो जंहा पर हम ऑब्जेक्ट के  गुन/चरित्र (Characteristic )  या कहें Attribute 
 एवं
व्यवहार मतलब  मेथड(Method) या फंक्शन (Function) को लिखते है उसे  क्लास कहा जाता है  |

======================*****========================================
अाप ऐसा  समझ सकते है की ऑब्जेक्ट को  बनाने  के लिए क्लास सांचे का काम करता है | 
=======================****========================================

मित्रो  जब हम किसी समस्या का समाधान प्रोग्राम  लिख  कर  करते है तो हमे यह सोचना चाहिए की हमारे अावश्यकता मे कितने ऑब्जेक्ट है एवं हमारी कोशिस  यह होनी चाहिए की उन ऑब्जेक्ट के लिए  क्लास बनाया जाए |
#################################################################################

2. Abstraction : 

Oops के नियम के अनुसार हमें ......

1. सिर्फ उसी इन्फोर्मेशन को दिखाना चाहिए जो की जरुरी है , एवं इम्प्लीमेंटेशन डिटेल को छुपा कर रखना  चिहिए.

 2. मतलब Abstraction यह कहता है की आप आपको बस यह जानकारी होनी चाहिए को यह ऑब्जेक्ट क्या काम  करता हैकी कैसे काम करता है |

3.Abstraction का अवधारणा इसलिए है की हम अपने प्रोग्राम के Complexity को मैंनेज कर सके |

मतलब आपको प्रोग्राम के  Complex कोड को क्लास में  मेथड बना कर  के रखना चहिये और मेथड का उपयोग हेतु दूसरे जगह  क्लास का ऑब्जेक्ट बना कर उस मेथड का प्रयोग करना चहिये |

Example के लिए मान लीजिये आप आपके पास  एक  employee class है एवं इस क्लास में एक  Method है CalculateSalary है जो Parameter के रूप में Employee Code लेता है व वर्तमान माह का सैलरी कैलकुलेट कर के देता है , अतः यदि कोई इस मेथड का उपयोग  करना चाहता है उसे इस चीज की जानकारी होना आवश्यक नहीं है की employee ऑब्जेक्ट कैसे  सैलरी को claculate करता है ,

और उसे सैलरी claculate करवाने के लिए मेथड का नाम और employee code की जानकारी   होना ही पर्याप्त होगा |

3. Encapsulation : 

Encapsulation के Conecpt को  हम इस प्रकार समझ सकते है  :

1. Encapsulation मतलब  क्लास के अंदर के महत्वपूर्ण  डाटा को सुरक्षा प्रदान करना जिसको हम क्लास के बाहर नहीं दिखाना चाहते | इस हेतु हम class मे ऑब्जेक्ट के field व मेथड को लिखते है Encapsulation  के अवधारणा को  Implement करने हेतु  हम Access Specifiers का उपयोग करते है जैसे :
  • Public
  • Private
  • Protected
  • Internal
  • Protected internal
  • इसके बारे मे हम दूसरे आर्टिक्ल मे विस्तार से समझेंगे | 
2. डाटा को accidental corruption से बचाने के लिए जिसकी संभावना  Programming Mistake के कारन बना रहता है जीससे हम  सही आउटपुट प्राप्त कर सकें |

3. class का अपने field पर बेहतर नियंत्रण रहे जीससे की डाटा validation सही हो  | 

4. Enheritance : 

 इस Conecpt को समझने से पहले हम कुछ बिन्दुओ पर चर्चा करेंगे की

4.1 हमे Inheritance इसकी जरूरत क्यों है ?

4.2 Inheritance  का क्या लाभ या फायदा है ?

4.3 इसे प्रोग्राम मे कैसे उपयोग करेंगे ?
======================================================================
4.1 हमे Inheritance इसकी जरूरत क्यों है ?
Figure:Class A

Figure:Class B

Figure:Main Class

Concept को समझने के लिए हमने दो क्लास A और class  B बनाया है हम देखते है की दोनों ही क्लास मे बहुत सारे  Code dulplicate है  जैसे FirstName, LastName, MoNo, और function PrintNameAndMono() 
Inheritance का फंडा यह कहता है की आप आप कॉमन Code को एक साथ क्लास मे रखे और इसे parent क्लास माने जबकि जो कुछ अलग code है उसे दूसरा क्लास बना कर रखे जिसे Child Class माने |

 Child Class पैरेंट Class  मे Declare सारे मेम्बर और फंकशन को Child क्लास को उपलब्ध करता है जिससे की पेरेंट क्लास मे Declare मेम्बर और फंकशन को Child class मे नहीं लिखना पड़ता है | 

आइये हम देखे की कैसे Inheritance का उपयोग करके ऊपर लिखे गए कोड को हम कैसे  लिख सकते है :
Use of Child Class in our main method:
Output Of Code is:

Dileep Vishwakarma , Mo No:1234567890
===========================================
उपर लिखा हुआ क्लास A व B को ध्यान से देखने से हमे पता चलता है की क्लास A पेरेंट क्लास है जबकि क्लास B child क्लास है जो की क्लास A से derive हुआ है, ऐसा करने से हम हम देख सकते है की अब कोई भी कोड duplicate नहीं है हम क्लास A मे लिखे कोड का उपयोग क्लास B मे कर रहे है |

अब आप समझ गए होंगे की Inheritance का क्या लाभ है :
  • एक बार लिखे कोड का कई जगह इस्तेमाल कर सकते है मतलब Code Re-Usability 
  • चूंकि कोड एक बार ही लिखना पड़ता है अतः समय की बचत होती है | 
  • कोड को मैंटेन करना आसान है|
  • कोडिंग मिस्टेक होने की संभावना कम होती है क्योंकि एक ही कोड बहुत जगह नहीं लिखा रहेगा | 
>> यहाँ पर आपको समझना जरूरी है की पेरेंट क्लास पहले Instantitae होता है child क्लास से और

>> Parent class Constructor पहले execute होता है child क्लास constructor से 


No comments: