Object Oriented Programming Concepts in Java in Hindi

 
हम Programming को मुख्यतया निम्न चार भागों में बांट सकते हैं –
  • Unstructured programming,
  • Procedural programming,
  • Modular programming and
  • Object-oriented programming.
1          Unstructured Programming

साधारणतया लोग जब Programming सीखना चालु करते हैं तो वे एस Program बनाने से शुरूआत करते हैं जो सरल व छोटे होते हैं। एसे Programs में केवल एक ही Main Program होता हैं। इस तरह के Programs में Program के Data Global होते हैं जिन्हे पूरे Program में कहीं से भी किसी भी Statement द्वारा Modify किया जा सकता है। निम्न चित्र को देखें –

Unstructured programming.
The main program directly operates on global data.
इस प्रकार के Program की कुछ कमियां होती हैं। एक तो ये कि इस प्रकार के Program बडे होते हैं। एक ही प्रकार के काम के लिए हमें बार-बार एक जैसे  Statement लिखने पडते हैं। इस तरह की Programming में Program Control एक Flow में क्रम से आगे बढता रहता है।
2          Procedural Programming
इस प्रकार की Programming में हम Program को छोटे-छोटे टुकडों में बांट लेते हैं और हर टुकडे का एक Procedure बना लेते हैं। Program में हमें जब किसी Procedure की जरूरत होती है तो हम अपने Program में ml Procedural को Call कर लेते हैं। इस तरह की Programming में Program Control बार-बार Call किए गए Procedural को Pass होता है और Function का काम पूरा होने के बाद Program Control वापस main program के Statements को Execute करता है। इस प्रक्रिया को अगले चित्र में दिखाया गया है।
Execution of procedures.
After processing flow of controls proceed where the call was made.
wweee
WEB GENISYS
इस तरह से Program लिखने पर Program अधिक सुविधाजनक व Error Free होता है। उदाहरण के लिए यदि एक Procedure ठीक तरह से काम कर रहा है तो हम उस Procedure को Program में जहां भी call करेंगे, Procedure ठीक तरीके से ही काम करेगा। इस तरह की Programming में हमें किसी Procedure को केवल एक बार ही लिखना और Debug करना होता है।
इस तरह की Programming में अब किसी Program को एक Procedural call की Sequence के रूप में दिखाई देता है। इस तरह के Program में main Program Call किए जा रहे विभिन्न Procedures कोs Data Pass करता है। इन Procedures में Data पर Processing होती है और जब एक बार Program समाप्त हो जाता है तो Resulting Data सामने आ जाता है। इस व्यवस्था को निम्न चित्र में समझ सकते हैं –
wwwrr

Procedural programming.

The main program coordinate calls to procedures and hands over appropriate data as parameters.
सारांश में इस प्रकार की Programming में हमारे पास अब केवल एक main Program होता है जिसे छोटे-छोटे  Procedures में विभाजित कर दिया जाता है। “C” एक Procedural Programming Language है।
3          Modular Programming
Modular Programming में Common Functionality के सभी Procedures को एक Separate Module में इकट्ठा कर दिया जाता है। इस स्थिति में main Program भी कई और छोटे-छोटे हिस्सों में बंट जाता है जो आपस में Procedural Calls द्वारा Interact करते हैं। इस तरह के Program को निम्न चित्रानुसार समझ सकते हैं-

Modular programming.

The main program coordinates calls to procedures in take apart modules and hands over appropriate data as parameters.
Abstract Data Types
हमें जो भी Program बनाना होता है वह “Real Life” से जुडी हुई होती है। हमें उस “Real Life” से जुडी हुई समस्या को Computer को Data के रूप में बताना होता है। समस्या को Data के रूप में विभाजित करने के लिए  हमें समस्या को समझना होता है ताकि समस्या की आवश्यक बातों को अनावश्यक बातों से अलग किया जा सके। समस्या को अच्छी तरह से समझने के बाद सारांश के रूप में जो आवश्यक Details हमें प्राप्त होती हैं उन्हें Computer में Data के रूप में इस्तेमाल किया जा सकता है। किसी “Real Life” Problem को Computer को समझाने योग्य Data में बदलने की प्रक्रिया को Abstraction कहा जाता है। इसे निम्न चित्र में दर्शाया गया है –
qwwee

Create a model from a problem with abstraction.

किसी बिखरी हुई समस्या को सुलझाने के लिए उसे चित्र में बताए Model Box के अनुसार व्यवस्थित कर लेना समस्या का Abstraction कहलाता है। यहां उपर बताए गए चित्र में Model समस्या का Abstract View दर्शा रहा है जहां Model में केवल समस्या से सम्बंधित Details ही होती हैं शेष अनावश्यक Details को हटा दिया गया होता है। अब हमें समस्या की Properties को परिभाषित करना होता है और इस समस्या की Characteristics में हमें निम्न बातें तय करनी होती हैं –
1    वे Data जो कि समस्या में प्रभावित हो रहे हैं और
2    वे प्रक्रियाएं जिन्हे Data के सम्बंध में उपयोग में लाया जा सकता है।
 इस समस्या को समझने के लिए हम एक उदाहरण लेते हैं। माना किसी
Company का Head आता है और आपसे एक एसा Program बनाने के लिए कहता है जिससे वह अपने Employees के बारे में सारी जानकारी रख सके और जब जिस Employee के बारे में चाहे उसकी Detail प्राप्त कर सके।
इस समस्या में सबसे पहले हमारा काम इस समस्या के मूल उद्देश्य को जानना है। इस समस्या में Administrator आपसे अपने Employees का Bio-Data जानना चाहता है। यानी इस समस्या में Employee प्रभावित हो रहा है इसलिए एक Employee के बारे में जो भी जानकारियां जरूरी हो सकती हैं, वे सभी Details Computer के लिए Data होंगी। चूंकि Employee एक “Real Person” है इसलिए हर Employee की कई विशेषताएं (Characteristics) हो सकती हैं जैसे
  • name
  • size
  • date of birth,
  • shape
  • social number
  • room number
  • hair color
  • hobbies
निश्चित रूप से Employee की इन सभी Characteristics की जानकारी की Administrator को कोई जरूरत नहीं होगी। इनमें से केवल कुछ ही बातें Administrator की समस्या से सम्बंधित होंगी जिन्हें वह जानना चाहेगा। परिणामस्वरूप समस्या के समाधान के लिए हम Employee का एक Model बनाते हैं। इस Model में केवल Employee की उन Characteristics को लिया जाएगा जिसकी Administrator को जरूरत हो सकती है जैसे Employee का नाम, उसकी जन्म तारीख और उसकी Qualification, इन Properties को Model (Employee) का Data कहते हैं। इस तरह हमनें एक Abstract Model की मदद से एक “Real Person” को Describe किया।
हालांकि अभी भी ये विवरण पूर्ण नहीं है। यहां कुछ प्रक्रियाएं भी होनी चाहिएं जिससे Administrator उस Abstract Employee को Handle कर सके। उदाहरण के लिए यहां एक एसी प्रक्रिया भी होनी चाहिए जिससे जब कोई नया व्यक्ति Company में आए तो Program में भी नए Employee को Create किया जा सके। परिणामस्वरूप हमें एसी प्रक्रियाओं को भी तय करना होगा जिनको Abstract Employee पर Perform किया जा सके। हमें ये भी तय करना होगा कि Company ds Employees के Data को केवल कोई आधिकारिक व्यक्ति जैसे कि Administrator या उसका Attorney (Legal Representative) ही Access कर सके। ये प्रक्रिया हमें ये सुविधा देती है कि Company केs Employees के Data सुरक्षित रहेंगे।
सारांश में कठिन “Real Life” Problems को Data और ¼ Data से सम्बंधित ½ Operations द्वारा एक अच्छी तरह से परिभाषित इकाई के रूप में व्यवस्थित करना Abstracting कहलाता है। यानी इस इकाई में Data vkSj Operations सम्मिलित रूप से रहते हैं। ये एक दूसरे से अलग नहीं रहते।

Properties of Abstract Data Types

जैसाकि पिछले उदाहरण में बताया गया है कि Abstraction द्वारा हम एक अच्छी तरह से परिभाषित (Well Defined) इकाई बनाते हैं जिसे अच्छी तरह से संचालित किया जा सकता है। ये इकाईयां Items के एक समूह का Data Structure Define करते हैं। उदाहरण के लिए हर Administered Employee का एक नाम है, Date Of Birth और Social Number है।
Data Structures को केवल Define किए गए Operations से ही Access किया जा सकता है। इन Operations के Set को Interface कहते हैं और ये उस इकाई द्वारा Export होते हैं। एक एसी इकाई जिसे उसकी Property के साथ Describe किया गया हो Abstract Data Type (ADT) कहलाता है। निम्न चित्र में ADT को दिखाया गया है जो कि एक Abstract Data Type Operations से बना हुआ है। इसके सिर्फ Operations को ही बाहर से Access किया जा सकता है Data को नहीं। ये ही इस इकाई के Interface (Crossing Point) हैं।
  An abstract data type (ADT)
qqqee

 

जब एक नया Employee Create होता है तो Data Structure Actual Values से भर जाता है: अब हमारे पास Abstract Employee का एक Instant होता है। हम जितने चाहें उतने Abstract Employee केs Instance Create कर सकते हैं। चलिए इसे थोडा और अच्छी तरीके से समझने की कोशिश करते हैं।
एक Abstract Data Type में निम्न बातें होती हैं –
1          ये एक नए प्रकार का “Real Life” से सम्बंधित Data Create करने का Type (Data Type ) प्रदान करता है।
2          एक Operations या Functions का एक एसा Set प्रदान करता है जिससे इस Data type के Data को Access किया जा सकता है। इस Set को Interface कहते हैं।
3          इस नए Data Type के Create किए गए हर Variable को केवल इन्हीं Interfaces द्वारा Access किया जा सकता है।
Importance of Data Structure Encapsulation
इस प्रक्रिया में Use होने वाला Data छुपा हुआ रहता है इसलिए इसे Data Hiding कहते हैं। उस Data को केवल एक Well Defined Interface द्वारा ही Access किए जा सकने की प्रक्रिया को Encapsulation कहते है।  Data dks Encapsulated रखना क्यों महत्वपूर्ण है ?
Implementation of Abstract Data Type
Abstract Data Type भी अन्य प्रकार के Built-In Data Types की तरह ही होते हैं। जिस तरह हम Integer प्रकार के  Variable को Create करने के लिए निम्न Statements लिखते हैं-
int i, j, k;    /* Define three integers */
i = 10;          /* Assign 1 to integer i */
j = 20;          /* Assign 2 to integer j */
k = i + j;      /* Assign the sum of i and j to k */
I व j को जोडने का तरीका Compiler को पता है लेकिन जब हम हमारे बनाए गए किसी Data Type के Variables को आपस में जुडवाना चाहें तो Compiler उसे नहीं समझ सकता।

Free Exclusive Traffic Tips

About the Author: Dharmendra Yadav

Hy I Am Dharmendra Yadav.. I Am a Web Enthusiast, System Specialist, Web Devloper, Graphic Designer, Professional Blogger, Certified Search Engine Optimizer & Cyber Expert,,,, From India....

You May Also Like

Leave a Reply

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