अॅब्स्ट्रॅक्शन आणि एन्कॅप्सुलेशनमधील फरक

शेवटचे अपडेट: २२/०२/२०२४

ॲब्स्ट्रॅक्शन आणि एन्कॅप्सुलेशन म्हणजे काय?

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

अमूर्तता

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

उदाहरणार्थ, आम्ही रेसिंग गेम तयार करत असल्यास, आम्ही "कार" वर्ग तयार करू शकतो ज्यामध्ये "स्पीड" किंवा "एक्सलेरेशन" सारखे गुणधर्म आहेत, परंतु आम्हाला इंजिन कसे कार्य करते किंवा शक्ती कशी प्रसारित केली जाते हे जाणून घेण्याची आवश्यकता नाही. चाके

उदाहरण:

अमूर्तता स्पष्ट करणारे कोड उदाहरण पाहू:

वर्ग कार { खाजगी इंट करंटस्पीड; खाजगी इंट प्रवेग; सार्वजनिक कार () { चालू गती = 0; प्रवेग = 0; } सार्वजनिक शून्य प्रवेग (इंट इन्क्रीमेंट) { प्रवेग += वाढ; } सार्वजनिक शून्यता decelerate(int decrement) { acceleration -= decrement; } // इतर गुणधर्म आणि पद्धती... }
  

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

विशेष सामग्री - येथे क्लिक करा  सममितीय आणि असममित एन्क्रिप्शनमधील फरक: आपल्या डेटाचे योग्यरित्या संरक्षण कसे करावे

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

La कॅप्सुलेशन, दुसरीकडे, क्लासचे अंतर्गत तपशील लपवण्याची किंवा संरक्षित करण्याची आणि केवळ सार्वजनिक इंटरफेसद्वारे प्रवेश करण्याची प्रक्रिया आहे. हे संभाव्य संघर्ष किंवा त्रुटी टाळण्यासाठी केले जाते.

उदाहरणार्थ, आमच्याकडे "वय" किंवा "नाव" सारख्या गुणधर्मांसह "व्यक्ती" वर्ग असल्यास, आम्ही हे सुनिश्चित करू इच्छितो की ते वर्गाबाहेरून अनवधानाने बदलले जाऊ शकत नाहीत. हे करण्यासाठी, आम्ही या गुणधर्मांना खाजगी म्हणून सेट करू शकतो आणि त्यांच्यामध्ये प्रवेश करण्यासाठी सार्वजनिक पद्धती तयार करू शकतो, जसे की "getAge()" किंवा "setName()".

उदाहरण:

चला एक कोड उदाहरण पाहू जे एन्कॅप्सुलेशन स्पष्ट करते:

वर्ग व्यक्ती { खाजगी पूर्ण वय; खाजगी स्ट्रिंग नाव; सार्वजनिक व्यक्ती(इंट ई, स्ट्रिंग एन) { वय = ई; नाव = n; } सार्वजनिक इंट getAge() { परतीचे वय; } सार्वजनिक स्ट्रिंग getName() { रिटर्न नेम; } सार्वजनिक शून्य सेटनाम(स्ट्रिंग n) { नाव = n; } // इतर गुणधर्म आणि पद्धती... }
  

या उदाहरणात, आम्ही दोन गुणधर्म (वय आणि नाव) आणि त्यात प्रवेश करण्याच्या अनेक पद्धती (getAge, getName आणि setName) सह "व्यक्ती" वर्ग तयार करत आहोत. परंतु हे गुणधर्म केवळ वर्गामधूनच प्रवेश करण्यायोग्य आहेत, संभाव्य त्रुटी किंवा संघर्षांपासून त्यांचे संरक्षण करतात.

विशेष सामग्री - येथे क्लिक करा  मायक्रोसॉफ्टने .NET 10 चे पहिले प्रिव्ह्यू नवीन वैशिष्ट्यांसह रिलीज केले आहे.

निष्कर्ष

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

प्रभावी ऑब्जेक्ट-ओरिएंटेड प्रोग्राम डिझाइन आणि विकसित करण्यासाठी या संकल्पना समजून घेणे आवश्यक आहे सुव्यवस्थित.

संदर्भ