What is Data Abstraction ?
किसी System की Inner Working को Hide करके उसे उपयोग में लेने के लिए एक Well
Defined Interface तैयार करने की प्रक्रिया को हम Encapsulationकहते हैं। Create होने वाले
Object को Real World में जब Use करना होता है, तब हम उसी Well Defined Interface
द्वारा उस Object के Data को Access करते हैं। Encapsulationका सबसे अच्छा उदाहरण एक
Watch का लिया जा सकता है। एक Wristwatch किस प्रकार से काम करता है, Internally
उस Wristwatch में क्या प्रक्रिया होती है, Wristwatch चाहे Analog हो या Digital, वह किस
प्रकार से Hours, Minutes व Seconds को Manage करता है, यानी Wristwatch की Internal
Working से हमें तब तक कोई मतलब नहीं होता है, जब तक कि Wristwatch सही तरीके से
काम करती है। हम केवल समय जानने के लिए किसी Wristwatch को Use करते हैं। Data व
Data पर Perform होने वाले Operations के Functions को एक Unit के रूप में Bind
करके Object की Class बनाने की प्रक्रिया को Encapsulationकहते हैं। इस Encapsulation के
Concept के आधार पर बननेवाली Class के Data को केवल उसी Class में Define किए गए
Member Functions ही Access कर सकते हैं। इन Member Functions के अलावा कोई भी
External Function उस Specific Class के Data को Access नहीं कर सकता है।यानी किसी
Class के अन्दर Define किए गए Member Function ही Program व Object के Data के बीच
Interfaceप्रदान करते हैं। बिना इन Member Function के Main Function, किसी अन्य
Class में Define किया गया Member Function या कोई भी अन्य User Defined External
Function उस Specific Object के Data को Access नहीं कर सकता है।यानी Main Program
से Object का Data पूरी तरह सेInsulatedया अलग होता है। इस Insulation के कारण किसी
Specific Object का Data किसी अन्य User Defined External Function या Main Program
से छुपा हुआ रहता है। इसलिए इस Insulation की प्रक्रिया कोData Hidingकहते हैं।Data
Abstraction एक ऐसी प्रक्रिया होती है, जिसमें किसी समस्या से सम्बंधित जरूरी बातों को
बिना जरूरी बातों से अलग किया जाता है। फिर उन जरूरी बातों को समस्या के किसी Object
की Properties के रूप में Describe किया जाता है उदाहरण के लिए मान लो कि किसी Company के Administrator को अपनी
Company के सभी Employees की Educational Information की जानकारी रखनी है। इस
स्थिति में किसी Employee की विभिन्न Properties निम्नानुसार हो सकती हैं-.
Name Of the Employee.Father’s Name of the Employee
*. Address of the
Employee
*. City of the Employee
*. State of the Employee
*. Country of the
Employee
*. Date Of Birth of the Employee
*. Education Of the Employee
*. Hobbies of
the Employee
*. Experience in the Company of the Employee
*. Extra Degree Of the
Employee
*. Cast of the Employee
*. Religion of the Employee
किसी Employee की और भी बहुत सी विशेषताएं हो सकती हैं, लेकिन चूंकि समस्या में
Company के Administrator को अपने Employees की केवल Educational Information से
ही मतलब है, शेष Information का Company के Administrator के लिए कोई उपयोग नहीं है,
इसलिए Administrator की समस्या से सम्बंधितजरूरी बातें केवल निम्नानुसार ही हैं-.
Name Of the Employee.Education Of the Employee
*. Extra Degree Of the
Employeeइनके अलावा एक Employee की जो भी Information हैं,
वे इस समस्या के लिए जरूरी नहीं हैं, हालांकि किसी अन्य समस्या के लिए ये जरूरी हो सकती
हैं।इस तरह से हमने एक Employee की विभिन्न विशेषताओं में से उन विशेषताओं को अलग
किया जो Company के Administrator के लिए जरूरी हैं या हमारी Current समस्या से
सम्बंधित हैं। इस प्रक्रिया को हीAbstraction कहते हैं।किसी अन्य समस्या जैसे कि Employees
के Bio Data को Manage करने वाली Class को Create करते समय ये सभी Information
जरूरी हो सकती हैं। उस स्थिति में कुछ अन्य बातें होंगी जो Employee के Bio Data से
सम्बंधित नहीं होंगी। तब भी हमें Employee के विभिन्न Data पर Abstraction की प्रक्रिया को
लागू करके जरूरी Data को बिना जरूरी Data से अलग करना होगा। जब हम किसी समस्या
के समाधान के लिए किसी Object की जरूरी बातों को बिना जरूरी बातों से अलग कर लेते हैं,
तब हमें समस्या से संबंधितजरूरी Properties प्राप्त होती हैं। यानी Object की विभिन्न Properties पर Data Abstraction की Process को Apply करने के बाद जो जरूरी
Properties प्राप्त होती हैं, उन Properties को Class के Attributes के रूप में Define कर
लिया जाता है और इन Attributes या Properties की State या स्थिति में परिवर्तन करने वाले
Operations के Functions को Attributes के साथ एक Unit के रूप में Encapsulate कर
लियाजाता है, जिससे एक Description बन जाता है।फिर इस Description को एक नाम दे
दिया जाता है, जो कि किसी Classको Represent करता है, यानी हम एक नई Class बना लेते
हैं।चूंकि हम जानते हैं कि Class OOPS में एक नए User Defined Data Type को Represent
करता है और हम जो Class बनाते हैं, उस Class मेंAbstractionप्रक्रिया के बाद प्राप्त हुए
Attributes होते हैं, इसलिए इस नए Createहोने वाले Data Type को Abstract Data Typeभी
कहते हैं।
No comments:
Post a Comment