कुनै पनि प्रोग्रामिंग को कम से कम एक न्यूनतम ज्ञान छ, जो आश्चर्यजनक आधार कक्षाहरु हो किन आश्चर्य। तिनीहरूको उद्देश्य के हो? सार सार वर्ग कसरी बनाउने? तिनीहरूले व्यवहारमा के फाइदाहरू छन्? उनीहरूलाई प्रोग्रामिंगमा किन आवश्यक छ र उनीहरूको कार्यान्वयनका विशेषताहरू खातामा लिन सकिन्छ?
सार वर्गहरू
त्यसैले प्रोग्रामिङमा प्रोग्राम कोडको एकाइ भनिन्छ, जसको आधारमा वस्तुहरू सिर्जना गर्न सकिँदैन। यो ध्यान दिनुपर्छ कि यो कक्षाको वारार सारणी नहुन सक्छ। त्यसकारण, वस्तुहरूको निर्माण तिनीहरूको आधारमा एकदम सम्भव छ। यदि हामी जावाबाट एक उदाहरण विचार गर्दछौं भने, हामी यस्तो मोडेल बनाउँछौं: हामी क्लास ए निर्माणकर्ताको वर्णन गर्न सक्छौं तर हामी तिनीहरूलाई प्रयोग गर्न सक्दैनौँ। यो अवस्थाबाट बाहिर एक सन्दर्भ एक सन्दर्भको रूपमा चर घोषणा गर्न हो। र यो स्पष्ट छ कि यो वर्ग ए को वस्तुलाई इंगित गर्न आवश्यक छ तर यो कसरि गर्न सकिन्छ? कास्टले हामीलाई यसमा मद्दत गर्नेछ। यो ध्यान दिइन्छ कि अभिभावक वर्गलाई बालबालिका भन्दा बढी विश्वव्यापी मानिन्छ। धेरै प्रोग्रामिङ भाषाहरूमा, कास्ट स्वचालित रूपमा प्रयोग गरिन्छ। तर यदि यस्तो तन्त्रणाको उपलब्धतामा कुनै विश्वास छैन भने, तपाईंले स्पष्ट रूपमा वस्तुको सन्दर्भ निर्दिष्ट गर्न अनिवार्य छ।
सार विधिहरू
तिनीहरू के हुन्? संक्षेप विधिहरू ती हुन् जुन विचार अन्तर्गत कक्षामा कार्यान्वयन छैन। त्यसोभए, पछाडिको पछाडि (जसमा ती तर्कहरू प्रयोग गरिएका छन्) सूचीमा नपिनिएको घुमाउनुहोस् (जसको पछि विधि विवरणको ब्लक राखिएको छ), तर केवल एक सेमिलोन। यस प्रकार, यस मामला मा त्यहाँ के गर्दैछ भन्ने बारेमा कुनै जानकारी छैन। यहाँ तपाईं प्रश्न सोध्न सक्नुहुन्छ: "यो विधि किन लागू नगरिकन हो?" सबै पछि, यो प्रयोग गर्न सकिँदैन! निस्सन्देह, यो व्याख्या गरिएको कक्षामा यो सम्भव छैन। तर यदि हामी यस अवस्थालाई सन्तानको दृष्टिकोणबाट विचार गर्छौं, त्यसपछि यो भनिन्छ। र यो यस वर्गमा विशिष्ट वर्णन उपलब्ध गराउने काम गर्दछ।
अमूर्त विधिहरूको विशेषताहरू
तिनीहरूको प्रयोगमा सीमाहरू छन्। यो जावा प्रोग्रामिङ भाषाको उदाहरणमा विचार गर्नुहोस् । त्यहाँ यस्तो आवश्यकता हो: यदि कक्षामा कम से कम एक यस्तो तरिका हो भने, यो जरूरी सार सार हुनु पर्छ। र कुन घटनाहरूमा त्यस्ता निर्माणहरू प्रयोग गर्न उपयुक्त छ? यसलाई प्यान्ट कक्षाहरूको अवस्थामा हेरौं। सुरू गर्न, यो बुझ्न सकिन्छ कि कुनै पनि आवाज छैन कि तिनीहरू सबै प्रकाशित। यसैले, सबैभन्दा सामान्य वर्गमा, ध्वनि विधिको कार्यान्वयन निर्दिष्ट गरिएको छैन। तर उनको लागि एक शरीर सिर्जना गरिएको छ, जुन ब्लक द्वारा विभाजित छ। र भविष्यमा पहिले नै, जब कुकुर, बिट वा ह्यामर क्लास सिर्जना गरिन्छ, यसको लागि एक फरक विधि निर्धारित गरिनेछ, जुन सबै सुविधाहरू प्रकट गरिनेछ।
इन्टरफेस
प्रोग्रामिंगमा, थुप्रै उपकरणहरू सिर्जना गरिएका छन् जसको उद्देश्य व्यक्तिले राम्रो गुणस्तरको उत्पादन गर्न मद्दत गर्दछ। र ध्यान अन्तर्गत विषयको ढाँचामा, यस पक्षलाई ध्यान दिइनेछ, ताकि सबैले सारपालिका र इन्टरफेस बीचको भिन्नतालाई जान्दछ। त्यसोभए, उत्तीर्णता भनेको यो गुण हुन सक्दैन, र विधिहरूसँग शरीर छैन। अमूर्त वर्ग र इन्टरफेस बीचको भिन्नता अन्वेषण गर्दा, एकले अर्को सुविधालाई ध्यान दिनुपर्छ। त्यसोभए, पहिलोलाई विरासतमा राखिएको छ, दोस्रोमा पाएको हुन्छ। एक अनुभवहीन व्यक्तिलाई यो नगद लाग्न सक्छ। तर तथ्य यो हो कि केवल एक वर्ग पाएको हुन सक्छ, र तपाईं धेरै चाहानुहुन्छ लागू गर्न सक्नुहुन्छ। यो कसरी अन्तर्वार्ता सार सार वर्गबाट फरक छ । जाभामा अन्य सुविधाहरू छन् जुन यसले सारिएका सार्वजनिक विधिहरू र स्थिर स्थिरताहरू मात्र वर्णन गर्न सक्छ। तर अन्तर्राष्ट्रिय स्थानहरू पनि विरासतमा लिन सकिन्छ। यस अवस्थामा, प्रयोग गरिएको अपरेटरहरू सार्वजनिक प्रयोग गरी सार्वजनिक प्रयोगका लागि आवश्यक छ।
एकाधिक इन्टरफेस वरीयता
यो प्रकार्य धेरै प्रोग्रामिंग भाषाहरु मा कक्षाहरु को लागि उपलब्ध छैन (उदाहरणार्थ, जावा मा हामी विचार गरिरहेको छ)। यो समस्याको कारण हो। यस्तो रूपमा, अस्पष्टता देखाउँदछ जुन जन्म पाउँदा उत्पन्न हुन्छ। यो एकाधिक सम्पदा अन्तर्राष्ट्रिय स्थानको परिचयको कारण थियो। यो आंशिक रूपले अवस्थित समस्याहरू समाधान गर्दछ, तर सबै होइन। त्यसकारण, encapsulation र polymorphism को सिद्धान्तहरूको लागि धन्यवाद, इन्टरफेस सफलतापूर्वक विभिन्न वर्गहरु मा फरक तरिकाहरु द्वारा लागू हुन सक्छ (यद्यपि उनीहरुसँग एक नै नाम हुनेछ)। तर अवस्थित समस्याहरूको बारेमा बिर्सनुहोस्। त्यसोभए, कहिलेकाँही बहुविध अन्तरक्रियाहरूसँग काम गर्दा, तपाईले सधैँ निर्दिष्ट गर्नु पर्छ कि हामी कसलाई मतलब छ। साथै, समान नामको दुई तरिकाहरूसँग काम गर्ने प्रयास गर्दा त्यहाँ समस्या हुनेछ, जसमा उनीहरूले प्रयोग गर्न सक्दैनन्। यसकारण, त्यस्तो अवस्थामाका लागि यो सामान्य कार्यान्वयनको उपलब्धताको ख्याल राख्नु आवश्यक छ।
सार डेटा
यो अवधारणा कार्यक्रममा कुञ्जी हो। यस अवस्थामा, अव्यवस्थित एक स्वतन्त्र विचार र इन्टरफेस र यसको कार्यान्वयनको विभाजनको रूपमा बुझ्न सकिन्छ। एउटा उदाहरण हेर्नुहोस्। हामीसँग एक टिभी छ, जुन वस्तु वा मोड्युल हो। यसमा एक इन्टरफेस छ। जस्तै, यसको लागि नियन्त्रणहरू छन्, साथै ध्वनि र छवि प्लेब्याक। अधिक उन्नत इन्टरफेस प्रयोग गरिन्छ, टिभी अधिक सुविधाजनक प्रयोगको प्रक्रियामा छ। हामी कुनै पनि बटन क्लिक गरेर प्रोग्रामहरू स्विच गर्न सक्दछौं। यस अवस्थामा, टिभीमा शारीरिक प्रक्रियाहरूको बारेमा सोच्ने कुनै जरुरी छैन। तिनीहरू हेरचाह गर्ने विशेषज्ञहरूले हेरचाह गरिरहेका हुन्छन्। हामी केवल प्रयोगकर्ताहरूको रूपमा गुणमा रुचि राख्दछौं। प्रोग्रामिङमा फर्काउने, हामी भन्न सक्छौं कि तिनीहरू यो आलोचक हुन् इन्टरफेस र कार्यान्वयन गर्दै छन्। साथै, यदि एक व्यक्ति आफ्नो ज्ञान मा विश्वास छ भने, उहाँले हाम्रो परिकल्पनात्मक टिभिबाट कवर "ले लो" र यसलाई सुधार गर्न सक्नुहुन्छ। यद्यपि यो स्थानीय सफलताको लागी नेतृत्व गर्न सक्दछ, धेरै अवस्थामा मा अन्त परिणाम नकारात्मक छ। त्यसोभए, प्रोग्रामिंगले अमूर्त डेटाको लागि आन्तरिक घटकहरू पहुँच र लुकाउँछ। यो मेकानिज्मको सिद्धान्तले आन्तरिक घटकहरूमा प्रायोगिक वा आकस्मिक परिवर्तनहरू रोक्न तरिकाहरू प्रदान गर्दछ। र जब तिनीहरू संक्षेप डेटा प्रकार बारे कुरा गर्छन, उनीहरूले सञ्चालन गर्ने बहुतायतको साथ तिनीहरूको समग्र अर्थ हो।
वस्तुहरू
हामीले पहिले नै सामान्य र सामान्यमा अमूर्त कक्षा र इन्टरफेसको जाँच गरेका छौं। अब हाम्रो ज्ञानलाई विस्तृत जानकारी दिनुहोस्। पहिलो, हामी वस्तुहरूमा ध्यान दिनेछौं। सामान्यतया उनीहरु द्वारा ठाउँ र समय मा अवस्थित आसपासको वास्तविकताको एक भाग बुझ्न सकिन्छ। तर प्रोग्रामिंग को ढांचे मा वस्तुहरु लाई औपचारिक रूप देखि परिभाषित गर्न को लागी मुश्किल हो बल्कि (एक दार्शनिक र सैद्धांतिक बिंदु देखि)। यसैले, यो यसको गुणको कारणले गरेको छ। उदाहरणको रूपमा, निम्न उद्धरण गर्न सकिन्छ: एक वस्तु विशिष्ट पहिचान गर्न सकिन्छ (एक अद्वितीय नाम छ), यो एक निश्चित राज्यमा छ र एक निश्चित व्यवहार व्यवहार को प्रयोग गर्दछ।
विरासत
प्रोग्रामिंग वस्तुहरु को बीच सम्बन्ध को पदानुक्रमिक रूख को निर्माण मा आधारित छ किनकि, प्रश्न उठाइयो कि अभिभावक कोड लाइब्रेरी को गुण अंतर्निहित प्रकारहरु मा स्थानांतरित गरिनु पर्छ। विरासत एक सम्बन्ध को रूप मा बुझिन्छ जब कुनै केहि को व्यवहार र संरचना दोहोरिन्छ। सामान्य जीवनमा, यो सबै ठाउँमा फेला पार्न सकिन्छ। यो सार सार तत्वहरूको सन्दर्भमा प्रोग्रामिंगमा पनि हस्तान्तरण गरिएको थियो। एक तुलनाको रूपमा, हामी तथ्यलाई उद्धृत गर्न सक्छौं कि पक्षीको रूपमा यस्तो जीवनी छैन। यो सार सार नाम हो। एक विशिष्ट नमूनाको रूपमा, तपाईं एक सिगुल, एक नाइटलाइकल वा फ्याँक ल्याउनुहुन्छ। विरासतको कारण, हामी क्लास पुस्तकालयहरू प्रयोग गर्न सक्छौं र साथै उनीहरूलाई विशेष कार्यक्रमको लागि विकास गर्न सक्दछौं। यस्तो उपकरणले हामीलाई नयाँ वस्तुहरू सिर्जना गर्न अनुमति दिन्छ, साथसाथै थप्नु वा पहिले नै सिर्जना गरिएको गुणको परिवर्तन गर्न। वारिस आफ्नो पुर्खा को सबै तरिका र क्षेत्रहरु हुन्छ र आवश्यक भएमा, आफ्नै विशेषताहरू प्राप्त गर्दछ। यस तथ्यले गर्दा सार सार तत्वहरू र विरासतको सिद्धान्त हो, वस्तु-आधारित कार्यक्रमको ढाँचामा परिमार्जनको लागि पर्याप्त अवसरहरू छन्। यसको अतिरिक्त, यसले तपाईंलाई कार्यको समाधानलाई सुचारु रूपले समाधान गर्न अनुमति दिन्छ। जब तपाईं वारिस गर्नुहुन्छ, डाटा र प्रकार्यहरू नयाँ क्लासमा पास हुन्छन्।
Polymorphism
फरक प्रकारका कार्यहरू समाधान गर्न एउटै कार्यहरू लागू गर्न आवश्यक छ। यस अवस्थामा, विभिन्न क्रियाकलापहरू प्रदर्शन गर्ने सम्भावनाको लागि प्रावधान छ, जसको सामग्रीले काम गरेमा वस्तुको प्रकारमा निर्भर गर्नेछ। पोलिमरोरफिटिज तत्वहरूको गुणको रूपमा बुझिएको छ जुन एक सामान्य आमाबाबु हो, अर्थमा फरक तरिकाले विभिन्न तरिकामा कार्य गर्दछ। हामी जनावरहरूसँग एक कोलाली आकर्षित गर्छौं। त्यहाँ चलिरहेको छ - चलाउन। हामी सबै यो कसरी हुन्छ भनेर बुझ्दछौं। तर विभिन्न जनावरहरूसँग (सिंह, हाइफैंन्ट, चिम्पार्नी, मगरकोड, कष्टोइस) यो कार्य फरक फरक हुनेछ। यस अवस्थामा, विकासकर्ता तिनीहरूको आन्दोलनको लागि जिम्मेवार छ, जुन आवश्यक भएमा, एक विशिष्ट सब्सक्र्रेमको लागि एक विशिष्ट मामलाको लागि, एल्गोरिदम विकास गर्न र सफलतापूर्वक यसलाई कार्यान्वयन गर्न सक्दछ। यो विधिहरूको सेट प्रयोग गरेर गरिन्छ। यस अवस्थामा, प्रत्येक विभाजित वर्गमा, प्रोग्रामरले कुन वस्तुलाई समावेश गर्दछ जुन कुन गुणहरू निहित छन्। सन्तानमा केहि परिवर्तन गर्नाले, तपाईं यस मामला कार्यहरूमा आवश्यक निश्चित, प्राप्त गर्न सक्नुहुनेछ। यस्तो प्रभावलाई बहुलकत्व वस्तु भनिन्छ। सामान्यमा, एक सार वर्ग एक अत्यन्त उपयोगी प्रोग्रामिङ उपकरण हो।