दा इंडियन वायर » टैकनोलजी » ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग क्या है?
टैकनोलजी

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग क्या है?

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग object oriented programming in hindi

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (object oriented programming), एक प्रोग्रामिंग लैंग्वेजेज की श्रेणी हैं जिसकी रचना ऑब्जेक्ट्स पर की गयी हैं। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में प्रोसेस किए जानेवाले डेटा पर अधिक ध्यान दिया जाता हैं, न की प्रोग्राम के लॉजिक पर।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की जरुरत (Need of OOP in hindi)

स्ट्रक्चर्ड प्रोग्रामिंग लैंग्वेजेज (structured programming languages) ने कठिन एवं क्लिष्ट प्रोग्राम्स को कम कठिन और समझने में आसान बनाकर प्रोग्रामर्स की मदत की। लेकिन स्ट्रक्चर्ड प्रोग्रामिंग लैंग्वेजेज में भी एक तय सीमा के बाद प्रोग्राम्स को समझना मुश्किल हो रहा था।

इस परेशानी को दूर करने के लिए, प्रोग्रामिंग की नयी पद्धति की खोज की गयी, जिसे ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग कहा जाता हैं। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग, एक अलग प्रोग्रामिंग की भाषा नहीं हैं, यह केवल प्रोग्रामिंग लैंग्वेजेज के दो श्रेणियों में से एक हैं।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में दी गयी इनहेरिटेंस, इनकैपस्यूलेशन और पौलीमोरफिसम जैसी विशेषताओं की वजह से प्रोग्राम का आसानी से क्लासेज में बाटा जा सकता हैं और इससे प्रोग्राम की क्लिष्टता भी कम हो जाती हैं।

ऑब्जेक्ट ओरिएंटेड कॉन्सेप्ट्स (OOP Concepts in hindi)

1क्लास (class in oops in hindi)

क्लास, समान गुणधर्मों वाले ओबेक्ट के गुट को कहा जाता हैं, जोकि आपस में समान संबंध भी साझा करते हैं।

क्योंकि, क्लासेज प्री-डिफाइंड डाटा टाइप(जिन डाटा टाइप्स की व्याख्या पहले से स्टोर की गयी होती हैं, उन्हें प्री-डिफाइंड डाटा टाइप कहा जाता हैं) नहीं हैं, और यूजर इन्हें परिभाषित करता हैं, इसलिए क्लास को यूजर-डिफाइंड डाटा टाइप कहा जाता हैं।

प्रोग्राम में एक बार क्लास को परिभाषित किए जाने के बाद, प्रोग्रामर अपनी इच्छा अनुसार ऑब्जेक्ट्स तयार कर सकता हैं।

जावा में क्लास को डिफाइन कैसे करें (How to define class in java in hindi)

जावा (java) में क्लास डिफाइन करने हेतु आपको, क्लास का बेसिक सिंटेक्स ध्यान में रखते हुए क्लास लिखना होगा।

सिंटेक्स (मुलभुत रचना)

public class Class_name

{              variable declarations;

public static void main(String[] args)

{variable declartions/initializations;

}

}

उदाहरण:

public class Hello

{              public static void main(String args[])

{ System.out.println(“First Java Program”);

}

}

स्पष्टीकरण-

यहाँ public इस शब्द को एक्सेस स्पेसिफायर या व्यूइंग मोड्स कहा जाता हैं। किसी भी एक्सेस स्पेसिफायर के बिना भी क्लास परिभाषित किया जा सकता हैं, ऐसी परिस्थिति में क्लास का एक्सेस मोड डिफ़ॉल्ट होता हैं।

Class यह एक कीवर्ड हैं, जो जावा कम्पाइलर को क्लास के बारें सूचित करता हैं। Hello यह क्लास का नाम हैं, क्लास को इसी नाम से मेमोरी में स्टोर किया जाएगा। क्लास का नाम लिखते समय ध्यान रहें की क्लास नेम का पहला अक्षर अप्पर केस(कैपिटल) हो।

क्लास को क्लास नेम से सेव किया जाना जरुरी हैं। अगर प्रोग्राम में एक से अधिक क्लास डिफाइन(परिभाषित) किए गए हो तब, आम तौर पर जिस क्लास में मेन फंक्शन को लिखा गया हो, उसी क्लास का नाम प्रोग्राम को दिया जाता हैं।

प्रोग्राम एक्सीक्यूट करते समय एक्सीक्यूशन की शुरुवात मेन फंक्शन से की जाती हैं।

2ऑब्जेक्ट्स (object in oops in hindi)

ऑब्जेक्ट्स को रियल वर्ल्ड एंटिटी कहा जाता हैं। ऑब्जेक्ट्स, प्रोग्राम्स रन करते समय डिफाइन तयार किए जाते हैं, इसलिए इन्हें रन टाइम एंटिटी भी कहा जाता हैं।

हर क्लास के एक या उससे अधिक ऑब्जेक्ट हो सकते हैं। प्रोग्रामर जब क्लास परिभाषित करता तब, कम्पाइलर उसे कोई भी मेमोरी स्पेस आबंटित नहीं करता, लेकिन जब ऑब्जेक्ट इनिशियलाइज़ किए जाते हैं, तब कम्पाइलर उन्हें मेमोरी आबंटित करता हैं।

हर ऑब्जेक्ट में क्लास की एक कॉपी होती हैं।

जावा में ऑब्जेक्ट कैसे डिफाइन करें (How to define object in hindi)

सिंटेक्स-

Public static void main(String args[])

{              Class_name object_name=new Class_name();

}

उदाहरण:

Public class Hello

{              public static void main(String args[])

{Example E=new Example();

}

}

स्पष्टीकरण-

Example यह एक क्लास हैं और E ऑब्जेक्ट का नाम हैं। एक्साम्पल क्लास के ऑब्जेक्ट E को कीवर्ड new की मदत से इनिशियलाइज़ किया गया हैं। अब E जोकि क्लास Example का ऑब्जेक्ट हैं, इसे क्लास की एक कॉपी आबंटित की जाएगी।

इसी प्रकार, प्रोग्रामर कई बार ऑब्जेक्ट को इनिशियलाइज़ कर सकता हैं, और हर बार नए ऑब्जेक्ट को क्लास की एक कॉपी आबंटित की जाएगी।

3डाटा अब्स्ट्रेक्शन (Data abstraction in oops hindi)

अब्स्ट्रेक्शन अर्थ होता हैं, एक समस्या का विशिष्ट दृष्टिकोण से परिक्षण करना। डाटा अब्स्ट्रेक्शन का मुख्य हेतु हैं की, ऐसे बिंदुओं(प्रोग्राम के घटक) को चुनना जो (प्रोग्रामर के) जरुरी हैं। और शेष को छोड़ना जोकि महत्वपूर्ण नहीं हैं।

आसान शब्दों में, डाटा अब्स्ट्रेक्शन-एक ऐसी कृति हैं, जिसमें महत्वपूर्ण घटकों को अनुपायोगी घटकों को शामिल किए बिना प्रदर्शित किया जाता हैं।

4. एनकैप्सूलेशन (Encapsulation in oops in hindi)

डाटा और फंक्शन्स को एक यूनिट में एकत्रित करने के कृति को ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग कॉन्सेप्ट्स में एनकैप्सूलेशन कहा जाता हैं।

एनकैप्सूलेशन, एक ऐसी पदधती हैं, जिसका उपयोग डाटा एवं फंक्शन्स को बाह्य हस्तक्षेप से बचाए रखने के लिए किया जाता हैं। प्रोग्राम में परिभाषित डाटा एवं डाटा फंक्शन्स तक सीधे पहुँच को रोकने के कृति को डाटा हायडिंग या एनकैप्सूलेशन कहा जाता हैं।

5इनहेरिटेंस (Inheritance in oops hindi)

इनहेरिटेंस, इस शब्द का शब्दशः अर्थ होता हैं विरासत या वंशानुक्रम। उदाहरण के तौर पर आपने दो क्लासेस परिभाषित(डिफाइन) किए हैं। एक बेस क्लास हैं और आप चाहते हैं, की बेस क्लास में परिभाषित फंक्शन्स या डाटा आइटम्स का इस्तेमाल दुसरे क्लास में भी किया जा सकें।

इसे ऑब्जेक्ट के जरिए किया जा सकता हैं, और जिस क्लास में बेस क्लास के गुणधर्म आप इस्तेमाल करना चाहते हैं, उसे डीराइव्हड् क्लास(Derived Class) कहा जाता हैं। डीराइव्हड् क्लास में बेस क्लास के गुणधर्म होते हैं और अपने आप के भी विशिष्ट गुणधर्म होते हैं।

तो इनहेरिटेंस की परिभाषा कुछ इस प्रकार हैं-

इनहेरिटेंस एक कृति हैं, जिसके इस्तेमाल से डीराइव्हड् क्लास का ऑब्जेक्ट, बेस क्लास के ऑब्जेक्ट के गुणधर्म उत्तराधिकार में प्राप्त कर सकता हैं।

इनहेरिटेंस में पुनर्प्रयोग के संकल्पना का इस्तेमाल किया जाता हैं, जिसके चलते एक क्लास(डीराइव्हड् क्लास) कई अन्य क्लासेज(बेस क्लास) के गुणधर्म अंगीकृत कर सकता हैं।

6पॉलिमोरफिज़म (Polymorphism in oops hindi)

पॉलिमोरफिज़म इस शब्द को अन्य दो शब्दों को जोड़ कर बनाया गया हैं। पॉलि का मतलब होता हैं अनेक और ओरफिज़म का अर्थ होता हैं, एक ही वस्तु के प्रकार।

आसान शब्दों में पॉलिमोरफिज़म अर्थ हैं, एक स्ट्रक्चर (जिसमें डाटा आइटम्स, फंक्शन्स, क्लासेज भी हो सकते हैं) को अलग अलग रूप में प्रदर्शित करना, लेकिन उसका नाम इन सबमें समान रहें।

उदाहरनार्थ-

Add(int a, int b)

{              return(a+b);

}

Add(float a, float b)

{              return(a+b);

}

Add(char a,char b)

{              return(a+b);

}

स्पष्टीकरण-

उपर दी गए उदाहरण में आप देख सकते हैं की एक नाम के तीन फंक्शन्स डिफाइन किए गए हैं, उनमें पास किए गए आर्गुमेंट्स की संख्या भी समान हैं। लेकिन पास किए गए आर्गुमेंट्स के डाटा टाइप्स अलग हैं। इसे ही ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग कॉन्सेप्ट्स में पॉलिमोरफिज़म कहा जाता हैं।

जब मेन फंक्शन में आप Add इस फंक्शन को कॉल करेंगे तो, कम्पाइलर फंक्शन कॉल करते समय दी गए आर्गुमेंट्स के आधार पर सही फंक्शन को कॉल करेगा।

इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।

About the author

प्रशांत पंद्री

प्रशांत, पुणे विश्वविद्यालय में बीबीए(कंप्यूटर एप्लीकेशन्स) के तृतीय वर्ष के छात्र हैं। वे अन्तर्राष्ट्रीय राजनीती, रक्षा और प्रोग्रामिंग लैंग्वेजेज में रूचि रखते हैं।

Add Comment

Click here to post a comment

फेसबुक पर दा इंडियन वायर से जुड़िये!