Object Oriented Programming in Hindi

Last Updated on July 9, 2022 by RAJENDRAPRASAD

Object Oriented Programming in Hindi

Object Oriented Programming in Hindi – Hello दोस्तों, rajhindime.in में आपका स्वागत है |

दोस्तों, पिछले पोस्ट Programming Language in Hindi – में आपने Programming Languages तथा उसके types के बारे में जानकारी प्राप्त की | आज के इस पोस्ट Object Oriented Programming in Hindi में – आप OOPs और उसके Concepts के बारे में विस्तार में जानेंगे |

आइए, सबसे पहले जानें कि Object Oriented Programmings (OOPs) कि जरुरत क्यों पड़ी, यह अस्तित्त्व में कैसे आया ?

Need of Object Oriented Programmings:

जैसा कि, आपको पता है कि Program, यह set of instructions होता है, जो computer को बताता है कि किसी भी दिए हुए समस्या (problem) के समाधान (solution) के लिए उसे क्या करना है | programming के बहुत सारे दृष्टिकोण (approaches) हैं, जिन्हें programming paradigm कहते हैं |

मौलिक रूप से देखा जाये तो, सभी paradigm अलग – अलग तरीकों (approches) का उपयोग करके programming कि सहायता से किसी भी problem के solutions तक पहुँचते हैं | बहुत सारे programming languages, एक ही paradigm का उपयोग करते हैं, जबकि कुछ programming languages, अनेकों (multiple) paradigm का उपयोग करते हैं |

कुछ paradigm, procedure को ज्यादा महत्त्व (importance) देते हैं तो कुछ data को | विभिन्न programming languages की क्षमता (capability) और शैली (style), उनके द्वारा अपनाए गए paradigm पर निर्भर होती है | हर paradigm का एक ही उद्देश्य (motive) होता है, प्रोग्रामिंग की जटिलता (complexity) को कम (reduce) करके एक विश्वसनीय (reliable) और maintainable, program बनाना |

उनमें से, procedure-oriented programming paradigm और object-oriented programming paradigm यह दो paradigm बहुत ही ज्यादा प्रसिद्ध (popular) हैं | आइए, इनके बारे में जानें-

Procedure Oriented Programming Paradigm क्या है ?

Procedure oriented programming paradigm, list of instructions का उपयोग करता है, जो computer को बताता है कि, उसे step-by-step क्या करना है, इस तरह procedure oriented programming paradigm पूरी तरह procedures पर निर्भर होता है |

Procedure oriented programming paradigm में किसी भी बड़े program को छोटे-छोटे programs में बाँट दिया जाता है, जिसे function कहते हैं | यहाँ पूरे program को sequence of functions के रूप में लिखा जाता है | हर एक function दिए गए किसी विशेष कार्य को पूरा करता है | execution के दौरान एक function, दूसरे function को call कर सकता है, उसके नाम का उपयोग करके |

Procedure oriented programming paradigm में data की बजाय, procedure पर ज्यादा ध्यान दिया जाता है | यहाँ data पुरे program में freely movable होता है | यह paradigm top-down design approach  का उपयोग करता है | अर्थात यहाँ सबसे पहले main program होता है, उसके छोटे छोटे टुकड़े करते हैं , फिर उसके और छोटे छोटे टुकड़े करते हैं, और उस पर कार्य करते हैं | अंत में सभी टुकड़ो को एक साथ जोड़कर पूरा program बन जाता है |

FORTRAN, BASIC, ALGOL, COBOL, Pascal और C कुछ Procedure oriented programming languages के उदाहरण हैं |

Procedure oriented programming paradigm, छोटे programs के लिए बेहतर होता है | परन्तु, जैसे-जैसे program बड़ा होता जाता है, उसकी complexity भी बढ़ती जाती है, तब पता चलता है कि इस paradigm में कुछ कमियाँ (limitations) हैं | यह बिल्कुल matter नहीं करता कि आपने, कितनी ही अच्छी तरह से इस approach का उपयोग किया है, बड़ा प्रोग्राम पूरी तरह से जटिल (complex) हो जाता है |

इस जटिलता के बहुत से कारण हैं जैसे,

  • Data का सही मूल्यांकन न करना (Data is undervalued)
  • New Data element, add करते समय, सभी अथवा बहुत सारे(multiple) functions में बदलाव (modification) करना
  • New Data Type बनाते समय कठिनाई (difficulty) होना
  • इस paradigm को real world से relate न कर पाना

Data का सही मूल्यांकन न करना (Data is undervalued)

Data को multiple functions के बीच share किया जा सके, इसके लिए बहुत सारे important data को global declare कर दिया जाता है | इससे data पुरे system में एक function से दूसरे सभी functions तक freely घूमता रहता रहता है, यहाँ पर यह संभावना हमेशा बनी रहती है कि, कोई भी function, किसी भी data की value को जानें या अनजानें में बदल (manipulate) कर सकता है | इस तरह procedure oriented programming paradigm में data secure नहीं रहता |

New Data element, add करते समय, सभी अथवा बहुत सारे(multiple) functions में बदलाव (modification) करना

क्योंकि, procedure oriented programming paradigm में बहुत सारे functions, global data को access करते हैं, यह बहुत ही महत्त्वपूर्ण है कि, data को किस प्रकार store किया गया है | data के arrangement को बिल्कुल भी बदला नहीं जा सकता, जब तक सारे functions, जो उसे access करते हैं, को modify न किया जाए |

यदि हम किसी new data item को add करतें हैं, हमें उन सभी functions को modify करना होगा जो उसे उपयोग (access) करते हैं, जिससे वे सभी functions उस new data item को access कर सकें | इस तरह उन सभी functions को ढूढ़ना (find out) और उन्हें modify करना बहुत कठिन है | Modifications के दौरान programs में error आने कि संभावना बढ़ जाती है, और large  program को debug करना बहुत मुश्किल हो जाता है |

New Data Type बनाते समय कठिनाई (difficulty) होना

आम तौर पर, computer languages में बहुत सारे built-in data type होते हैं जैसे, integer, float, character, double इत्यादि | कुछ programming languages, programmer को built-in data type के आलावा, अलग से new data type बनाने की अनुमति देते हैं | Programming की यह विशेषता, program की capability को extend करके, उसकी complexity को कम करती है | Procedural oriented programming languages में इस विशेषता का आभाव है अर्थात procedural languages, extensible नहीं है |

इस paradigm को real world से relate न कर पाना

Procedure oriented programming paradigm में functions और data, एक single unit के रूप में consider नहीं किये जाते, तथा यह एक-दूसरे पर निर्भर भी नहीं होते अर्थात independent होते हैं | इस तरह procedure paradigm में data और functions दोनों ही real world object की तरह model नहीं हो सकते, इसका अर्थ है कि हम इन्हें real world object से relate नहीं कर सकते |

प्रत्येक real world objects, जिससे हम घिरे (surrounded) हुए हैं, उनके पास characteristics और Behavior दोनों ही होते हैं, जो एक दूसरे से जुड़े होते हैं अर्थात उन्हें एक single unit के रूप में consider किया गया है, उदाहरण के तौर पर, अगर हम “मनुष्य” कि बात करें तो, name, Gender, Address इत्यादि उसके characteristics हैं तथा बोलना (speaking), हँसना (laughing), खाना (eating) इत्यादि उसके behavior हैं |

यद्यपि, behavior को function तथा characteristics को data के रूप में represent किया जा सकता है, लेकिन हम data और functions को एक साथ club नहीं कर सकते | इसलिए procedure oriented programming paradigm में चीजों (objects) को real world से model करना बहुत ही कठिन है |

Object Oriented Programming Paradigm क्या है ?

इस तरह, अब तक आप ने जाना कि, procedure oriented programming paradigm में बहुत सारी कमियाँ (limitations) हैं, इन्हीं limitations को दूर करने के लिए object oriented programming paradigm का निर्माण किया गया | आइए जानें, किस तरह object oriented programming paradigm ने इन कमियों को पूरा किया |

Object oriented programming paradigm में program development के दौरान data को बहुत ही important element माना गया है | यहाँ procedure की बजाय, data पर ज्यादा ध्यान दिया जाता है | यह data को पुरे system में freely घूमने से रोकता है |

Object oriented programming paradigm दिए हुए problem को number of entities में बाँटता है, जिसे object कहते हैं, उसके बाद उस object से related data और functions बनाएँ जाते हैं | अर्थात यहाँ data और functions एक दूसरे पर निर्भर (dependent) होते हैं |

Object oriented programming paradigm, data और functions को एक-दूसरे को object के द्वारा बाँध कर रखता है, जिससे outside functions जाने अनजाने में उसके data को modify नहीं कर सकते | इस तरह  object oriented paradigm, data को security प्रदान करता है |

चूँकि, data और functions को एक-दूसरे से object में बँधे होते हैं, इससे कम code का उपयोग करके अत्यधिक जटिल (complex) program को भी बनाना संभव हो जाता है | objects का प्रयोग code को reusable बनाता है | जब आप एक बार more complex behavior के साथ object बना लेते हैं, तब आप उसे अपने code में कहीं भी reuse कर सकते हैं |

Object oriented programming paradigm में existing code को maintain तथा modify करना सरल होता है, क्योकि existing data को बिना disturb किए ही new object को बनाया जा सकता है |

Object oriented programming paradigm में new data type के साथ ही साथ operator के लिए new operations भी बनाए जा सकते हैं |

Object oriented programming paradigm का उपयोग करके real life scenarios को implement किया जा सकता है |

वर्तमान समय में Java, C++, C#, Python, PHP, Ruby, Perl इत्यादि कुछ प्रसिद्ध (popular) Object Oriented Programming Languages हैं |

Object Oriented Programming कैसे कार्य करता है | How Object Oriented Programming works:

Program के बढ़ने के साथ ही उसकी complexity भी बढ़ती जाती है | एक समय ऐसा आता है, जब program के अंदर लिखे हुए विशाल (Huge) codes को समझना, उसे maintain करना और bug-free रखना बहुत ही कठिन हो जाता है |

Object Oriented Programming, objects के network बनाकर, इस problem को minimize अर्थात कम करने का प्रयास करता है | Objects असल में एक पूरे बड़े program की तुलना में छोटे- छोटे entities होते हैं, जिनका अपना ही एक specific task होता है, जिसे वे सरलता के पूरा करते हैं | और अंत में, सारे objects एक साथ मिलकर पूरे system में कार्य करते हैं | इस तरह, एक complex system भी objects की सहायता से, आसानी से बन जाता है |

उदाहरण के लिए, अगर एक Motor car को एक single machine की तरह design किया जाए तो, यह बहुत ही जटिल (complex) कार्य है, और पूरा car बनने के बाद भी यह संभावना (possibilities) अधिक रहती है कि, उसमे कुछ ना कुछ त्रुटि अर्थात failure रह जाए | और यही same car को बनाने का कार्य, अगर छोटे छोटे parts में बाँट अर्थात divide कर दिया जाए, जैसे पहिया (wheels), पेडल (pedals), दरवाजा (doors) इत्यादि तब इन्हे अलग-अलग design करना आसान हो जाता है |

हर parts अर्थात object को independently design करना, उन्हें test करना और अंत में सब parts को एक साथ जोड़कर उसे motor car का रूप देना | यहाँ कोई parts, जो बड़ा हो उसे और कई छोटे parts में बाँटकर भी उस पर आसानी से कार्य किया जा सकता है जैसे, दरवाजे के अंदर काँच (mirror), handles, mirror buttons इत्यादि को अलग-अलग design किया जा सकता है |

Object Oriented Programming की अवधारणाएँ | Key Concepts of Object Oriented Programming:

आगे चलकर, इस tutorials में हम Java Programming Language को सीखेंगे | हम actual code start करें, इससे पहले आइए जानते हैं कुछ concepts के बारे में जिन्हें हम आने वाले code में use करेंगे |

Class and Object:

मान लीजिये, कोई एक builder है जिसे एक society का निर्माण करना है, जिसमे 100 घर (houses) हों | अब builder सबसे पहले उसका ढाँचा (blueprint/template) बनाएगा, जैसे घर में hall कहाँ हो, kitchen कहाँ हो, bedroom कहाँ हो इत्यादि और बाद में उसी blueprint के अनुसार वह 100 घरों से बनी society का निर्माण करेगा |

ठीक उसी तरह Object Oriented Programming में Class, objects के लिए blueprint अथवा template का कार्य करता है |

Class एक set of objects में उपलब्ध, behavior और characteristics को परिभाषित (define) करता है, जिसे programmer द्वारा code में लिखा जाता है |

Class एक abstract definition है जो run time के दौरान तब अस्तित्त्व में आता है , जब उसके behavior पर आधारित objects का निर्माण होता है |

उदाहरण के लिए, मान लिजिए वाहन अर्थात Vehicle एक Class है, अब इसके अंदर programmer अनेकों methods जैसे Steer(), Accelerate(), Brake() तथा अनेकों properties जैसे colour, numberOfDoors , topSpeed , numberOfWheels को बनाता है | अब यहाँ पर भी class Vehicle एक abstract design है और यह real world में तब अस्तित्त्व में आएगा जब उससे objects जैसे Car, RacingCar, Truck आदि बनेंगे, जिनका अपना खुद का एक नया version होगा, उनके class में लिखे गए के methods और properties का अनुसार |

इस तरह objects , Class का instances होता है, जिसका अपना states और behavior होता है, जो उनके class में लिखे गए के methods और properties का अनुसार ही होता हैं | उदाहरण के लिए, Car, Truck यह सभी एक ही Class Vehicle के objects हैं परन्तु दोनों के states और behavior भिन्न (different) हो सकते है, Car लाल (red) हो सकता है, truck काला (black) हो सकता है, कार में चार पहिए (wheel) हो सकते है, ट्रक में 8-10 पहिये हो सकते हैं |

इस तरह objects, किसी भी programs के actual component होते हैं, जबकि Class केवल यह सुनिश्चित करता हैं कि, instance को कैसे create किया जाए और वह किस प्रकार बर्ताव अर्थात behave करेगा |

Class यह एक user defined data type हैं, जिसके data member और member function होतें हैं | Class के अन्दर जो variables होते है उन्हें data members कहते है तथा member function वे functions होते हैं, जिनका प्रयोग करके इन variables को manipulate करते हैं | इस तरह data members और member function, Class के अंदर objects की properties और behavior को परिभाषित (define) करते हैं |

Abstraction:

abstraction यह एक ऐसा process है, जिसका उपयोग करके किसी भी real world object को उसके simplified version के साथ प्रस्तुत (represent) किया जाता है अर्थात abstraction का उपयोग करके किसी भी object की complexity को छुपाया (hide) जाता है |

Abstraction द्वारा user का ध्यान इस बात पर केंद्रित (focus) किया जाता है कि, कोई object क्या काम कर सकता है, न कि उस काम को कैसे करता है | इसका अर्थ यह है कि abstraction, design parts पर focus करता है |

उदाहरण के लिए, अगर हम किसी vehicle को describe करते है तो यह नहीं बताते कि car को drive करते समय उसका engine कैसे कार्य करता हैं, बल्कि driver को कुछ ही tools के बारे में बताते हैं जैसे pedal, brake, steering heel, blinker इत्यादि | यहाँ engine की पूरी engineering को छुपाया अर्थात hidden रखा जाता हैं, क्योकि एक driver के लिए इसका कुछ उपयोग नहीं है | इसे ही abstraction कहते हैं |

Java में abstract class तथा interface का उपयोग करके abstraction को implement किया जाता है, जिसे हम आने वाले tutorials में सीखेंगे |

Encapsulation:

सभी महत्त्वपूर्ण information को एक object के अंदर समाहित (contain) करना और केवल कुछ selected information को ही outside word में expose करना ही encapsulation कहलाता है |

Encapsulation इस बात पर ज्यादा focus करता है कि कोई objects कैसे कार्य करता है | इसका अर्थ यह है कि encapsulation, implementation parts पर focus करता है |

Encapsulation, internal working अर्थात implementation को छुपाता है, जिसे भविष्य में जरुरत पड़ने पर change अथवा modify किया जा सकता है | उदाहरण के लिए, बहुत सारे Vehicles जैसे Bike में current speed को दर्शाने के लिए पहले कांटें (needle) का उपयोग किया जाता था, जिसे बाद में बदलकर digital कर दिया गया |

Java में Access modifier जैसे private, protected, public का उपयोग करके Encapsulation को implement किया जाता है, जिसे हम आने वाले tutorials में सीखेंगे |

अधिक जानकारी के लिए Encapsulation in Java in Hindi को पढ़ें |

Inheritance:

Real world में प्रत्येक child के पास बहुत सारे गुण (features) होते हैं, कुछ उसके स्वयं के गुण होते हैं तथा कुछ गुण वह अपने माता पिता (parents) से विरासत के रूप में प्राप्त अर्थात inherit करता है | Child द्वारा अपने parents के गुणों को inherit करने की इसी प्रक्रिया (process) को Inheritance कहते हैं |

Inheritance का उपयोग करके एक Class, किसी दूसरे Class के feature को inherit करता है | यदि किसी parent class में कुछ basic attributes और behavior पहले से ही define किए गए है, उस स्थिति में कुछ additional attributes और behavior को जोड़कर तथा parent class के functionality को extend करके child class का निर्माण किया जा सकता है | इस तरह अब child class अपने खुद के features के साथ-साथ उसके parent class के features को भी use कर सकता है |

Inheritance, code re-usability को बढ़ावा (support) देता है | इसका अर्थ यह है कि, inheritance का use करके किसी code को program में बार-बार use अर्थात reuse किया जाता है |

अधिक जानकारी के लिए Inheritance in Java in Hindi को पढ़ें |

Polymorphism:

Poly का अर्थ है बहुत (Many) तथा morph का अर्थ है आकार (Shape) | Polymorphism का अर्थ है अलग-अलग रूप (forms) में व्यक्त (express) करना |

Object को उसके data type अथवा class के अनुसार, अलग ढंग से (differently) process करने की प्रक्रिया को Polymorphism कहते हैं | सरल शब्दों में कहें तो, एक class के लिए, अपने methods को redefine करने की योग्यता (ability) को Polymorphism कहते हैं |

Object oriented programming में polymorphism दो तरीकों से achieve किया जाता है|

  1. Method Overloading 
  2. Method Overriding

Method Overloading:

इसमें function या method का, name same होता है परन्तु method call के दौरान उसे different parameter पास किए जाते है | यहाँ pass किए हुए parameter के अनुसार result अलग हो सकता है |

उदाहरण के लिए, function Add() में यदि दो parameter पास किए जाएँ तो यह दो अंको को जोड़कर result देगा तथा इसी function Add() में यदि पांच parameter पास किए जाएँ तो यह 5 अंको को जोड़कर रिजल्ट देगा |

Method Overriding:

इसमें method name, parent तथा child class दोनों में ही same होता है, परन्तु हर child class में इस method का behavior अलग-अलग हो सकता है |

उदाहरण के लिए, मान लीजिए parent class में एक fuction Area() है, प्रत्येक child class जैसे Triangle , Rectangle, Square आदि इसे inherit करते हैं | अब हर child class में method name Area() तो एक ही है, परन्तु हर child class इसे अपने अनुसार override अर्थात modify करेगा, जिससे इसके result अलग अलग होंगे |

अधिक जानकारी के लिए Polymorphism in Java in Hindi  तथा Runtime Polymorphism in java in Hindi को पढ़ें |

Conclusion – आज आपने क्या सीखा

इस post में आपने Object oriented programming तथा उसके Concept के बारे में विस्तृत जानकारी प्राप्त की | आशा है कि, आपको मेरा यह Blog Object oriented programming in Hindi जरूर पसंद आया होगा |

अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएँ, मैं उसका reply जरूर दूँगा |

इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |

Leave a Comment