What is Object Oriented Programming in Hindi – OOPs

What is Object Oriented Programming

OBJECT ORIENTED PROGRAMMING क्या हैं?

पायथन प्रोग्रामिंग भाषा की सबसे एहम खासियत यह है कि यह एक सबसे सरल तथा object oriented programming language हैं। मगर सवाल यह है कि आखिर यह Object Oriented Programming in Hindi क्या होती है? इस लेख में हम OOPs के बारे में काफी विस्तार से चर्चा करेगें | OOPs का Full Form – Object Oriented Programming System है।

Object oriented programming में object का मतलब होता है physical quantity या फिर Programming में डिज़ाइन किया हुआ कोई code या data का भाग जिसे वस्तु भी कहा जाता है। वास्तव में code या data के अंश को वस्तु मानकर उसे संचालित करना एवं उसे classes में divide करके उसके संचालन को Multi functional तथा आसान बनाना ही object oriented Programming का मूल उद्देश्य हैं।

यह Programming पद्दति पहली ऐसी computer programming पद्दति हैं जो function और logic के बजाय objects एवं classes के साथ काम करती है जिससे उस programming भाषा कि efficiency और बढ़‌ जाती है।

प्रोग्रामिंग के प्राचीन काल में programmers के लिए कुछ programs को समझना काफी कठिन होता था इसलिए Structured programming language पद्धति का आविष्कार किया गया जिससे काफी हद तक प्रोग्राम्स को सुव्यवस्थित एवं समझने में आसान बनने में सहायता मिली ।

मगर structured प्रोग्रामिंग पध्दति से केवल एक तय सीमा तक ही programs को आसानी से समझा जा सकता था । इस समस्या को सुलझाने के लिए नई प्रोग्रमिंग पद्धति का आविष्कार किया गया जिसे Object Oriented programming कहा जाने लगा।

यह कोई अलग प्रोग्रामिंग भाषा नहीं है बल्कि एक प्रोग्रामिंग पद्धति है जो अपनी खास विशेषताओं जैसे inheritance, Encapsulation, polymorphism, Extensibility, Persistence एवं Delegation से किसी भी कठिन से कठिन प्रोग्राम को classes में बांटकर उन्हें बहुत सरल बना देती हैं।

इस नई प्रोग्रामिंग पद्धति से प्रोग्रामिंग की दुनिया में एक नई क्रांति का उदय हुआ एवं तकनीक के क्षेत्र में coding languages ने कई नामुम्किन आविष्कारों को कर दिखाया |

प्रोग्रामिंग में कुल चार प्रकार के Models होते हैं जिनके Base पर सारी प्रोग्रामिंग भाषाएं कार्य करती है। वह चार models है

  1. Procedural Programming,
  2. Logical Programming,
  3. Functional Programing
  4. Object oriented Programming

हर Model की अपनी एक निश्चित अवधारणा होती है जिसके Base पर उसकी प्रोग्रामिंग भाषाएं आधारित होती हैं। OOPs की अवधारणा पर आधारित होती है जिसमें data एंव Function दोनो शामिल होत हैं। इसकी मदद से programmer एक object तथा दूसरे object के बीच संबंध स्थापित कर सकता है।

OOPs full form
OOPs Full Form

OOPS PROGRAMMING LANGUAGES 

Semula पहली ऐसी Programming language थी जो OOP`s पद्धति को support करती थी। इसके उपरान्त “Smalltalk” नामक प्रोग्रामिंग भाषा का विकास किया गया जिसे पहली सबसे “शुद्ध” object oriented programming भाषा कहा जाता है।

  1. Java
  2. Python
  3. Ruby
  4. PHP
  5. JavaScript
  6. Swift
  7. Perl
  8. COBOL
  9. Kotlin
  10. Scala
  11. Lisp
  12. Objective-C
  13. Ada
  14. Rust
  15. Golang
  16. MATLAB
  17. Object Pascal
  18. Type Script
  19. Common Lisp
  20. Dart
  21. Eiffel
  22. Elixir
  23. Tcl
  24. ABAP

DIFFERENCE BETWEEN OBJECT ORIENTED PROGRAMMING (Oop’s) AND PROCEDURAL ORIENTED PROGRAMMING (Pop’s)

  • Procedural Oriented Programming में program के भागों को functions में बाटां जा सकता है, जबकि object oriented programming में program के छोटे-छोटे खण्डों को objects या Classes में विभाजित किया जाता हैं|
  • Pop’s में Top down approach का प्रयोग होता हैं, बल्कि Oop’s में bottom up Approach का उपयोग होता हैं।
  • Procedural Oriented Programming में data को hide करने यानि छुपाने के लिए कोई खास feature नहीं होता है। Data hiding काफी लागदायक मानी जाती हैं,
    जबकि object oriented programming में Data को hide करने के लिए Data hiding feature होता हैं। इसलिए object oriented programming, procedural oriented programming से काफि ज्यादा सुरक्षित मानी जाती है ।
  • Pop’s में code को access करने में किसी प्रकार की पाबंदी नहीं लगाई जा सकती बल्कि Oop’s में आप access नियंत्रित कर सकते हैं जैसे’ Public या private. 
  • Procedural Oriented Programming में यदि आप कोई नया Data या function डालना चाहते हैं तो उसके लिए आपको अपना पूरा प्रोग्राम Re-wise करना होगा मगर object oriented programming में Program को बिना revise किए ही नया data या Function डाला जा सकता है ।
  • Procedural oriented Programming, procedure abstraction को Support करती है बल्कि object Oriented programming, data abstraction को Support करती हैं।
  • Procedural Oriented Programming से बड़े program को संचालित करना काफि कठिन होता है जबकि object oriented programming बड़े से बड़े program को आसानी से संचालित कर सकती हैं।
  • Pop’s में overloading नहीं की जा सकती है मगर Oop’s में function overloading तथा operator Overloading की जा सकती हैं।
  • Procedural Oriented Programming में data को एक Function से दूसरे Function में भेजा जा सकता है मगर Object Oriented Programming में Access specifiers की वजह से Data Protect भी किया जा सकता है जिससे functions का transfer possible नहीं है।
What Object Oriented Programming hindi

OBJECT ORIENTED PROGRAMMING PARADIGM 

असल में Oop’s कम्प्यूटर प्रोग्रामिंग की दुनिया को वास्तविक दुनिया से जोड़कर कार्य करती हैं, जो इसकी क्षमता को और अधिक निखारकर इसे काफी Practical बनाता है। यह Programming Paradigm data पर अधिक ध्यान देता है एवं extensibility को बढ़ा कर समस्याओं को काफी व्यवस्थित कर देता हैं। यह  program execution के explanation पर नहीं बल्कि प्रोग्राम execution के व्यवस्थित रूप से होने पर प्रभाव डालती हैं।

Object एक इकाई या unit है जो डाटा तथा function को Encapsulate यानी अपने अंदर समाहित कर लेता हैं। Oop’s Paradigm समस्याओं को objects में convert कर देता हैं जिससे वास्तविक दुनिया जैसा एक Model तैयार हो जाता है। इसके बाद यह उपलब्ध Data और function को समस्या यानी object के अनुसार उसके आस-पास विकसित करता है एवं डाटा को उनके functions से काफी निकटता से जोड़ देता है जिससे यह Global access से बचे रहते हैं।

Object Oriented Programming में Data को directly Access नहीं किया जा सकता क्योंकि इसमें Access specifiers की सुविधा होती हैं जो इसे दूसरे डाटा के द्वारा अचानक की गई छेड़छाड़ से बचाती है | Object Oriented Paradigm में डाटा को Access करने के लिए उसके object के function की आवश्यक्ता पड़ती है। इस व्यवस्था से Data hiding सिद्धांत कि पुष्टि होती हैं जो हमारी प्रोग्रामिंग को काफी सुरक्षित बनाती हैं।

क्योकि इस Paradigm में data hide होता है इसलिए objects एक दूसरे से संपर्क करने के लिए उनके Member Function का उपयोग करते हैं। एक object दूसरे object के function को access कर सकता हैं मगर एक object का function दूसरे object के डाटा को access नहीं कर सकता।

Object Oriented Programming Paradigm में Data को Program designing का सबसे महत्वपूर्ण घटक माना जाता है इसलिए यह Data को संग्रहित एवं संगठित करके रखता है जिससे अन्य objects के functions इसे Access करके destroy ना कर सकें।

FEATURES OF OBJECT ORIENTED PROGRAMMING 

Object oriented programming पद्दति एक बहुत कुशल programming पद्दति हैं। इसके कुछ खास features हैं जो इसे इतना कुशल बनाते हैं, आइए आगे बड़ते हुए उनके विषय में चर्चा करते हैं। 

  1. Class
  2. Inheritance 
  3. Polymorphism 
  4. Data abstraction 
  5. Encapsulation 
  6. Message passing 
  7. Attributes 
  8. Extensibility 
  9. Generosity 

Class 

Oop’s में class का concept वास्तविक दुनिया से लिया गया है जो इसे अन्य computer Programming पद्धतियों से अलग बनाता है। साधारण भाषा में क्लास का मतलब समान property एवं Behavior रखने वाले objects के समूह से होता है। Class, object की Identity के समान होता है जो हमें उस object एवं उसके अंदर के डेटा के बारे में सम्पूर्ण जानकारी देता है।

इसे object का Blueprint भी कहा जा सकता है। Class की संरचना Functions एवं Variables को मिलाकर की जाती हैं जिसमें functions अपनी class के Properties एंव behavior के अनुसार काम करते हैं। उन Variables के अंदर वह मुख्य data save होता है जिसे function द्वारा Access किया जाता है। 

Programming में class को बनाने के लिए “class” keyword का उपयोग करना आवश्यकता है। class create हो जाने के बाद Doc-strings लिखे जाते हैं। यह Doc-strings ऐसे statements होते हैं जो class के विषय में जानकारी देते हैं।

Doc-strings बन जाने के बाद class_body,  जो कि उस class कि Body होती है उसके अन्दर statements के रूप में Data, Variables, functions एवं methods को डाला जाता है जो मिलकर एक Class का निर्माण करते हैं।

Class के Doc-string को Access करने के लिए “_doc_” का उपयोग किया जाता हैं, जो आउटपुट में उस class के Doc-string को print करता हैं। इसी प्रकार “func” attribute, class के functions को Access करके output में Print करने के लिए उपयोग होता है।
पाइथन में object, variable की तरह ही होते हैं जिनकी Value के रूप में Class को store कराया जाता है जो खुद ही एक प्रकार के function की तरह कार्य करता है ।

Inheritance 

जैसा कि आप पहले भी इस लेख में पढ़ चुके हैं कि Object Oriented  Programming वास्तविक दुनिया से काफी ताल्लुक रखती है। इस दुनिया में जिस प्रकार माता-पिता कि Biological Characteristics उनके बच्चों मे Genes के द्वारा inherit हो जाती हैं
उसी प्रकार इसमें भी एक class की properties तथा Behavior दूसरे class में insert कराए जा सकते हैं।

जब एक Developer Object Oriented पद्धति में class को Develop करता है तो उस class की Behavior एवं properties उसके अंदर लिखे गए functions एवं Variables से बनते हैं। Inheritance एक ऐसा Mechanism हैं जिसकी सहायता से हम एक class की characteristics  को दूसरी class में वैसे का वैसा ही insert करा सकते हैं।

प्रोग्रामिंग में जिस Class की properties को निकालकर दूसरी Class में डाला जाता है उसे Super Class, parent class  या Base class कहते हैं, एवं जिस Class में उन Properties को insert किया जा हैं उसे child class, derived class या Sub class कहते हैं।

Parent class of Properties का Child class में inherit होने की प्रक्रिया को ही inheritance कहते हैं। इसका यह mechanism developers के लिए काफी लाभदायक सिद्ध हुआ हैं ।

Polymorphism 

Polymorphism, Oop’s का एक मुख्य concept हैं जो इस programming पद्धति को और अधिक उपयोगी एवं सरल बनाने में सहायता करता हैं।  Polymorphism शब्द दो Greek शब्दों “Poly” और “morph” से मिलकर बना है जिसका मतलब होता है अनेक रूपों में होना। आसान शब्दों में कहें तो polymorphism किसी वस्तु के अनेक रूपों में exist करने की क्षमता को दर्शाता है।

Programming में Polymorphism वह क्षमता है जिसकी मदद से Object एक ही समय में अलग-अलग Forms में exist कर सकता है। यह Variables एवं Functions को भी एक समय में एक से अधिक रूप लेने की क्षमता प्रदान करता हैं। Polymorphism में inheritance के Concept का भी भरपूर मात्रा में उपयोग किया जाता है,
जब Parent class को child class के Reference के रूप में उपयोग किया जाता है तब Polymorphism का उपयोग होता है।

Polymorphism developer को ऐसे program develop करने में Flexibility प्रदान करता है जिनमें आसानी से inheritance हो सके जिससे programs reusable तथा Flexible होत जाते हैं। Programming में polymorphism के 2 प्रकार होते हैं। 

  • Static polymorphism 
  • Dynamic Polymorphism

Static polymorphism 

एक ही function यदि अलग-अलग रूपों में यानी अलग-अलग डाटा टाइप में बनता है तो उसे static Polymorphism कहा जाता है। उदाहरण के लिए यदि कोई function एक बार String data type के लिए बने तथा वही function दूसरी बार Integer data type के लिए बने तो वह Static polymorphism कहलाएगा
जिसमें एक function एक ही समय में string तथा integer data type के लिए बना है।

Dynamic Polymorphism

programming language

ऐसी विधी हैं जिससे रन टाइम errors को ठीक किया जाता है। इसमें Abstract Classes एवं visual function का उपयोग होता है जो child Class बनाने में सहायता करता हैं एवं उसमें Abstract Classes की सारी Characteristics, Properties एवं Behavior inherit किए जा सकते हैं।

इनके अलावा Polymorphism की 3 शाखाएं भी होती है;

  1. Ad hoc Polymorphism
  2. Parametric Polymorphism
  3. Inclusion Polymorphism

Encapsulation

Oop’s में Encapsulation एक security System की तरह होता है जो किसी data पर अचानक होने वाले foreign attacks से एवं direct Access से बचाता हैं। असल में Data एवं उस पर उपयोग हुए function को एक ही Class के अंदर store करके रखना Encapsulation कहलाता है एवं Encapsulation की वजह से ही कोई और function या method उस Data को Access नहीं कर सकती।

केवल उस data का specific function ही उस डाटा को Directly Access कर सकता हैं। इसमें encapsulation का concept data को काफी हद तक protect करके रखता है।

Message passing 

Object oriented programming में अलग – अलग object कई सारे समूह बना कर एकत्रित रहते हैं। Message Passing ऐसा system है जिसकी सहायता से वे सारे objects आपस में communication करते हैं।
Objects  का आपस में communication 3 चरणों में होता हैं। सबसे पहले object की Abstract data के द्वारा Class definition create की जाती है। यह Class definition उस object के सारे गुणों वाली characteristics, Properties एवं Behavior के बारे में जानकारी देती हैं।

अगले चरण में उस Abstract data type की class definition के भी छोटे-छोटे objects create किये जाते हैं। इसके बाद तीसरे चरण में वे create किये गए objects आपस में communicate करते हैं। इस प्रकार Main Objects के बीच communication establish होता है एवं Message passing की प्रक्रिया होती हैं।

Attributes 

Attributes, class या object के अंदर के members होते हैं जो उस class या object के features को define करते हैं। यह attributes changeable होते हैं यानि आप object एवं classes कि properties और behavior को अपने अनुसार change कर सकते हैं।

Extensibility

Object Oriented पद्धति पर कार्य करने वाली सारी Programming भाषाएँ Extensible होती हैं। Extensibility वह शैली है जो programmers को programming में नई सुविधाओं को अपनाने की ability प्रदान करती हैं। इसके उपलब्ध होने से Developer या programmer बड़ी आसानी से नई Data संरचनाओं, नए Notations एवं नए संचालनों पर नियंत्रण करके उनका उपयोग कर सकता है।

Data abstraction 

Data Abstraction Oop’s का एक बेहद महत्वपूर्ण concept हैं, जो data display को manage करता है। प्रोग्रामिंग करते समय बहुत सारा डाटा ऐसा होता है जिसकी कोई मुख्य उपयोगिता नहीं होती है। ऐसे में Developers के लिए Data Manage करना काफी मुश्किल हो जाता है ।

इस समस्या का समाधान object oriented Programming पद्दति में Data Abstraction के द्वारा किया जा सकता है। Data Abstraction कि मदद से  Data, Variables एवं functions को Public या Private करके restrict किया जा सकता है,
जिससे Private Sector में सिर्फ उतना ही Data Display होगा जितना Private किया गया है एवं Public sector में सिर्फ उतना ही data diplay होगा जितना Public किया गया है।

Generosity 

Generosity,  Oop’s कि वह मुख्य शाखा हैं जो किसी function या class को अलग-अलग data types के साथ कार्य करने कि अनुमति प्रदान करती हैं जो उस programming भाषा को flexible बनाता हैं। 

आपने जाना 

What is Object Oriented Programming in Hindi इस लेख में हमने computer programming के एक अत्यंत महत्वपूर्ण concept, Object Oriented Programming पर चर्चा कि हैं। यह कोई अलग programming भाषा नहीं बल्कि एक programming पद्दति हैं,
जिससे coding भाषाओं के development एवं programming काफी हद तक सरल तथा और अधिक efficient हो गई हैं।

Object Oriented पद्दति में कई सारे ऐसे features हैं जिनसे developers की प्राचीन काल से चली आ रहीं कई जटिल समस्याएं आसानी से हल हो जाती हैं। यह पहली ऐसी Programming पद्दति है जो coding कि problems को वास्तविक दुनिया से जोड़कर उनके practical solutions को ढूंढकर कार्य करती हैं। 

यह programming पद्दति data को objects एवं classes में विभाजित करके coding को काफि सरल तथा multi functional बनाती हैं। इसमें Inheritance,  Data Abstraction,  Polymorphism,  Encapsulation, Extensibility,  Generosity तथा Message passing जैसे functions है जिनके बारे में और अधिक विस्तार से आप ऊपर के लेख में पढ़ सकते हैं। 

उम्मीद है आपको ये लेख पसंद आया होगा और आप पाइथन भाषा सीखने के लिए अपने अंदर अभिलाषा को बरकरार रखेंगे।

Fundamentals of python in hindi
Fundamentals of Python in Hindi

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top