CodeGym /Java Course /मॉड्यूल 1 /ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग

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

मॉड्यूल 1
पातळी 12 , धडा 5
उपलब्ध

1. OOP च्या तत्त्वांचा परिचय

आज तुम्हाला एक नवीन आणि मनोरंजक जग सापडेल. ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंगचे जग ( OOP ). तुम्ही पूर्वी वर्ग आणि वस्तूंबद्दल शिकलात. आज आपण त्यांच्याबद्दल अधिक जाणून घ्याल, बरेच काही.

कार्यक्रमांच्या वाढत्या जटिलतेला प्रतिसाद म्हणून OOP उदयास आले. जेव्हा प्रोग्राममधील व्हेरिएबल्स आणि पद्धती हजारोच्या संख्येत येऊ लागल्या, तेव्हा हे स्पष्ट झाले की काहीतरी केले पाहिजे. एक उपाय म्हणजे डेटा आणि संबंधित पद्धती वेगळ्या वस्तूंमध्ये एकत्र करणे.

आता प्रोग्रामरना स्वतंत्रपणे वर्णन करावे लागेल की ऑब्जेक्ट्स बाह्यरित्या कसे संवाद साधतात आणि ते अंतर्गत कसे वागतात. त्यामुळे प्रोग्राम्स समजून घेणे आणि लिहिणे खूप सोपे झाले. तथापि, एक प्रश्न राहिला: कोणत्या पद्धती ऑब्जेक्टच्या अंतर्गत असाव्यात आणि कोणत्या इतर वस्तूंसाठी उपलब्ध असाव्यात?

अनेक पद्धती वापरण्याचा प्रयत्न केला. आणि शोधलेल्या सर्वोत्तम पद्धतींवर आधारित, OOP ची 4 तत्त्वे उदयास आली. ते अ‍ॅब्स्ट्रॅक्शन, एन्कॅप्सुलेशन, इनहेरिटन्स आणि पॉलिमॉर्फिझम आहेत . पूर्वी, फक्त तीन होते, परंतु नंतर तज्ञांनी अमूर्तता देखील जोडण्याचा निर्णय घेतला.


2. अमूर्तता

इंटरनेटवरील लोक अजूनही OOP मधील अमूर्ततेच्या व्याख्येवर वाद घालतात . समस्या अशी नाही की प्रत्येकजण चुकीचा आहे. हे असे आहे की प्रत्येकजण बरोबर आहे . प्रोग्रॅम जितका लहान असेल तितका जावा भाषेशी अॅब्स्ट्रॅक्शन जोडला जाईल. प्रोग्राम जितका मोठा असेल तितका अमूर्तता वास्तविक-जगातील वस्तूंचे मॉडेलिंग/सरलीकरणाशी जोडली जाते.

परंतु सर्वोत्कृष्ट मने सहमत आहेत असे दिसते की:

अ‍ॅब्स्ट्रॅक्शन म्हणजे एखाद्या ऑब्जेक्टच्या केवळ त्या वैशिष्ट्यांचा वापर करणे जे त्यास प्रोग्रॅममध्ये पुरेसे अचूकपणे दर्शवतात. मुख्य कल्पना म्हणजे फील्ड आणि पद्धतींच्या सर्वात लहान संचासह ऑब्जेक्टचे प्रतिनिधित्व करणे जे एकाच वेळी आपली कार्ये पुरेशा अचूकतेसह सोडवण्याची परवानगी देतात .

जावामध्ये, अमूर्त वर्ग आणि इंटरफेसद्वारे अमूर्तता पूर्ण केली जाते.

वास्तविक जीवनात अमूर्तता

वास्तविक जीवनातील अमूर्ततेचे एक चांगले उदाहरण म्हणजे कंपनी किंवा संस्थेतील नोकरीचे वर्णन. पदाचे शीर्षक ही एक गोष्ट आहे, परंतु पदासाठी नेमलेल्या विशिष्ट जबाबदाऱ्या ही पूर्णपणे वेगळी बाब आहे.

कल्पना करा की तुम्ही तुमच्या भावी कंपनीची संस्थात्मक रचना तयार करत आहात. तुम्ही सचिवीय जबाबदाऱ्यांची विभागणी करू शकता, त्यांना विविध पदांवर विखुरू शकता. तुम्ही सीईओ पदाचे अनेक स्वतंत्र पदांमध्ये विभाजन करू शकता: सीएफओ, सीटीओ, सीएमओ, एचआर संचालक. किंवा, उदाहरणार्थ, तुम्ही ऑफिस मॅनेजर आणि रिक्रूटरची पोझिशन्स एकत्र करू शकता.

तुम्ही नोकरीच्या पदांचा विचार करता आणि नंतर या पदांसाठी जबाबदार्‍या विभाजित करा. अ‍ॅब्स्ट्रॅक्शन म्हणजे संपूर्णपणे ऑब्जेक्टपासून दूर जाणे आणि आपल्याला आवश्यक असलेले आवश्यक गुणधर्म आणि घटक निवडणे.

OOP च्या तत्त्वांचा परिचय.  अमूर्त

प्रोग्रामिंगच्या दृष्टिकोनातून, अॅब्स्ट्रॅक्शन म्हणजे एखाद्या प्रोग्रामचे ऑब्जेक्ट्समध्ये योग्य विभाजन . सामान्यतः, कोणत्याही मोठ्या प्रोग्रामचे संवाद साधणारे ऑब्जेक्ट म्हणून प्रतिनिधित्व करण्याचे डझनभर मार्ग आहेत. अ‍ॅब्स्ट्रॅक्शन तुम्हाला आवश्यक वैशिष्ट्ये निवडू देते आणि अत्यावश्यक गोष्टींकडे दुर्लक्ष करू देते.


3. एन्कॅप्सुलेशन

एन्कॅप्स्युलेशनचे उद्दिष्ट ऑब्जेक्ट्स सुलभ करून परस्परसंवाद सुधारणे आहे.

आणि काहीतरी सोपे करण्याचा सर्वोत्तम मार्ग म्हणजे डोळ्यांपासून गुंतागुंतीची कोणतीही गोष्ट लपवणे. उदाहरणार्थ, जर तुम्हाला बोईंग जंबो जेटच्या कॉकपिटमध्ये ठेवले तर ते कसे चालवायचे ते तुम्हाला लगेच समजणार नाही:

परंतु विमानातील प्रवाशांसाठी, सर्वकाही सोपे आहे: आपण तिकीट खरेदी करता आणि विमानात चढता, जे उडते आणि नंतर उतरते. फक्त "तिकीट खरेदी" आणि "विमानात बसणे" या क्षमतेने तुम्ही एका खंडातून दुसऱ्या खंडात सहज उड्डाण करू शकता. उड्डाण, टेकऑफ, लँडिंग आणि विविध आपत्कालीन परिस्थितींसाठी विमानाची तयारी करण्याची सर्व गुंतागुंत तुमच्यापासून लपलेली आहे. उपग्रह नेव्हिगेशन, ऑटोपायलट आणि हवाई वाहतूक नियंत्रण केंद्रांचा उल्लेख नाही. आणि हे आपल्यासाठी जीवन सोपे करते.

प्रोग्रामिंगच्या दृष्टिकोनातून, एन्कॅप्सुलेशन म्हणजे "अंमलबजावणी लपवणे". मला ही व्याख्या आवडते. आमच्या वर्गात शेकडो पद्धती असू शकतात आणि विविध परिस्थितींमध्ये अतिशय जटिल वर्तन लागू करू शकतात. परंतु आम्ही त्याच्या सर्व पद्धती डोळ्यांपासून लपवू शकतो (त्यांना खाजगी सुधारकाने चिन्हांकित करून), आणि इतर वर्गांशी संवाद साधण्यासाठी फक्त दोन किंवा तीन पद्धती सोडू शकतो (त्यांना सार्वजनिक सुधारकासह चिन्हांकित करून). मग आमच्या प्रोग्रामचे इतर सर्व वर्ग फक्त तीन सार्वजनिक पद्धती पाहतील आणि त्यांना कॉल करतील परंतु इतरांना नाही. आणि सर्व क्लिष्टता वर्गात लपलेली असेल, जशी कॉकपिट आनंदी प्रवाशांपासून लपलेली असते.


4. वारसा

वारसाच्या दोन बाजू आहेत . प्रोग्रामिंगमध्ये वारसा आणि वास्तविक जीवनात वारसा. प्रोग्रामिंगमध्ये, वारसा हा दोन वर्गांमधील एक विशेष संबंध आहे . परंतु वास्तविक जीवनातील वारसा अधिक मनोरंजक आहे.

जर आपल्याला वास्तविक जीवनात काहीतरी तयार करायचे असेल तर आपल्याकडे दोन पर्याय आहेत:

  1. खूप वेळ आणि मेहनत खर्च करून आम्हाला आवश्यक असलेली गोष्ट सुरवातीपासून तयार करा.
  2. आधीपासून अस्तित्वात असलेल्या एखाद्या गोष्टीवर आधारित आम्हाला आवश्यक असलेली गोष्ट तयार करा.

इष्टतम रणनीती ही आहे: विद्यमान चांगले उपाय घ्या, त्यात थोडे बदल करा, आमच्या गरजा पूर्ण करण्यासाठी ते समायोजित करा आणि नंतर ते वापरा.

जर आपण मानवी इतिहासाच्या सुरुवातीपर्यंतचा शोध घेतला, तर आपल्याला असे आढळून येते की ग्रहावर जीवन सुरू होऊन अब्जावधी वर्षे उलटून गेली आहेत. परंतु जर आपण मानवाचा प्रारंभ बिंदू हा आपले आदिम पूर्वज मानला (म्हणजे मानव "प्राइमॅट पूर्वजांवर" आधारित आहेत), तर केवळ दोन दशलक्ष वर्षे गेली आहेत. सुरवातीपासून बिल्डिंग जास्त वेळ घेते. जास्त काळ.

प्रोग्रामिंगमध्ये, तुम्ही एक क्लास तयार करून दुसऱ्या वर्गावर आधारित असे काहीतरी करू शकता. नवीन वर्ग विद्यमान वर्गापासून (वारसा) उतरतो. जेव्हा विद्यमान वर्गामध्ये आम्हाला आवश्यक असलेला 80-90% डेटा आणि पद्धती असतात तेव्हा हे खूप फायदेशीर आहे. आम्ही फक्त योग्य वर्गाला आमच्या नवीन वर्गाचे पालक म्हणून घोषित करतो आणि पालक वर्गाचा सर्व डेटा आणि पद्धती नवीन वर्गात आपोआप दिसून येतात. सोयीस्कर, बरोबर?


5. बहुरूपता

पॉलिमॉर्फिझम ही एक प्रोग्रामिंग संकल्पना आहे. हे अशा परिस्थितीचे वर्णन करते जेथे एकाच इंटरफेसच्या मागे भिन्न अंमलबजावणी लपलेली असते. प्रतिपक्षाच्या वास्तविक जीवनाकडे पाहताना, आम्हाला असे आढळते की वाहन चालवणे योग्य आहे.

जर एखाद्याला ट्रक चालवता येत असेल तर तिला रुग्णवाहिकेच्या मागे किंवा स्पोर्ट्स कारच्या चाकाच्या मागे देखील ठेवता येईल. कारच्या प्रकाराकडे दुर्लक्ष करून एखादी व्यक्ती कार चालवू शकते, कारण सर्व कारमध्ये समान नियंत्रण इंटरफेस आहे: एक स्टीयरिंग व्हील, पेडल्स आणि गियरशिफ्ट. कारचे अंतर्गत भाग भिन्न आहेत, परंतु त्या सर्वांचा कंट्रोल इंटरफेस समान आहे.

प्रोग्रामिंगच्या जगात परत आल्यावर, पॉलिमॉर्फिझम विविध वर्गांच्या वस्तूंना (सामान्यत: समान पूर्वज असलेल्या) एकाच प्रकारे प्रवेश करण्यास अनुमती देते, अशी मालमत्ता ज्याचे मूल्य क्वचितच वाढवले ​​जाऊ शकते. कार्यक्रम जसजसा मोठा होतो तसतसे त्याचे मूल्य वाढते.

OOP म्हणजे तत्त्वे. अंतर्गत कायदे. त्यांपैकी प्रत्येकजण आपल्याला कोणत्या ना कोणत्या प्रकारे मर्यादित करतो , परंतु जेव्हा कार्यक्रम मोठा होतो तेव्हा त्या बदल्यात बरेच फायदे प्रदान करतात. ओओपीची चार तत्त्वे टेबलच्या चार पायांसारखी आहेत. एक काढून घ्या आणि संपूर्ण यंत्रणा अस्थिर होते.


टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION