વર્ગો અને માળખા વચ્ચેનો તફાવત

Anonim

વર્ગો વિસ્ટ્રક્ચર્સ

ઓબ્જેક્ટ ઓરીએન્ટેડ (ઓઓ) પ્રોગ્રામિંગ લેંગ્વેજની કેટલીક મુખ્ય ખ્યાલો ઇનકેપ્સ્યુલેશન, ઇનહેરીટમેન્ટ અને પોલીમોર્ફિઝમ છે. વર્ગ અને માળખું બે OO રચનાઓ / સાધનો છે, જે પ્રોગ્રામરોને આ વિભાવનાઓને મોટાભાગની બહારની OO પ્રોગ્રામિંગ ભાષાઓ (જાવા માળખું પૂરું પાડતું નથી) માં પ્રાપ્ત કરવા માટે મદદ કરે છે. વર્ગો વાસ્તવિક દુનિયાના પદાર્થોનો અમૂર્ત પ્રતિનિધિત્વ છે. માળખાં સમાન ઉપયોગથી વર્ગો સમાન હોય છે, પરંતુ વર્ગોની સરખામણીમાં કેટલીક મર્યાદાઓ હોય છે. બંને વર્ગો અને માળખાનો ઉપયોગ સમાન પ્રકારના ડેટાને એકસાથે કરવા માટે કરવામાં આવે છે.

વર્ગો શું છે?

વર્ગો વાસ્તવિક વિશ્વની વસ્તુઓના અમૂર્ત પ્રતિનિધિત્વનું નિરૂપણ કરે છે, જ્યારે સંબંધ દર્શાવે છે કે કેવી રીતે દરેક વર્ગ અન્ય લોકો સાથે જોડાયેલ છે. વર્ગો અને સંબંધો બંને લક્ષણો તરીકે ઓળખાય ગુણધર્મો ધરાવે છે. વર્ગોમાંની પદ્ધતિઓ આ વર્ગોના વર્તનને પ્રતિનિધિત્વ કરે છે અથવા વ્યાખ્યાયિત કરે છે. વર્ગના પદ્ધતિઓ અને લક્ષણોને વર્ગના સભ્યો કહેવામાં આવે છે. સામાન્ય રીતે, જાહેર પદ્ધતિઓ બનાવતી વખતે, વિશેષતાઓને ખાનગી બનાવીને કેપ્પ્યુસ્યુલેશન પ્રાપ્ત થાય છે, જે તે લક્ષણોને ઍક્સેસ કરવા માટે વાપરી શકાય છે. ઑબ્જેક્ટ ક્લાસનું ઉદાહરણ છે. વારસામાં વપરાશકર્તા અન્ય વર્ગો (જેને સુપર વર્ગો કહેવાય છે) માંથી વર્ગો (ઉપ વર્ગ તરીકે ઓળખાતો) વિસ્તારવા માટે પરવાનગી આપે છે. પોલિમોર્ફિઝમ પ્રોગ્રામરને તેના સુપર ક્લાસના ઑબ્જેક્ટની જગ્યાએ એક ઑબ્જેક્ટનો વિકલ્પ આપવા માટે પરવાનગી આપે છે. લાક્ષણિક રીતે, સમસ્યા વ્યાખ્યામાં જોવા મળતા સંજ્ઞાઓ પ્રોગ્રામમાં વર્ગો બની જાય છે. અને એ જ રીતે, ક્રિયાપદ પદ્ધતિઓ બની જાય છે. જાહેર, ખાનગી અને સંરક્ષિત વર્ગો માટે ઉપયોગમાં લેવાતા સામાન્ય ઍક્સેસ મોડિફાયર છે. ક્લાસ ડાયાગ્રામ સિસ્ટમોના વર્ગો, વર્ગો વચ્ચેનો સંબંધ અને તેમના લક્ષણો દર્શાવે છે.

માળખું શું છે?

ઉપર સૂચવ્યા મુજબ, માળખા સમાન ઉપયોગથી વર્ગો જેવી જ છે, પરંતુ વર્ગો કરતાં સહેજ મર્યાદિત ક્ષમતાઓ છે. વાસ્તવમાં, વર્ગોને માળખાના વિસ્તરણ તરીકે ગણી શકાય. ઉદાહરણ તરીકે, માળખાં C ++ માં વર્ગો જેવા જ છે, પરંતુ તેઓ મૂળભૂત સભ્યો છે. કોમ્પોઝિટવાળા પ્રકારનું પ્રતિનિધિત્વ કરવા માટે વપરાશકર્તા દ્વારા માળખું વ્યાખ્યાયિત કરી શકાય છે. વર્ગોની જેમ, માળખામાં એવા સભ્યો છે કે જે ઘણા પ્રકારોથી સંબંધિત હોઈ શકે છે. કીવર્ડ સ્ટ્રક્ટનો ઉપયોગ C અને C ++ માં એક માળખાને વ્યાખ્યાયિત કરવા માટે કરવામાં આવે છે, જ્યારે મુખ્ય શબ્દ માળખું એ જ.NET પ્રોગ્રામિંગ ભાષાઓ માટે વપરાય છે.

વર્ગો અને માળખા વચ્ચે શું તફાવત છે?

ભલે, વર્ગો અને માળખા બંને પ્રોગ્રામિંગ ભાષાઓમાં મળી આવેલા સમાન રચના છે, તેમાં સૂક્ષ્મ તફાવતો છે. લાક્ષણિક રીતે, વર્ગ માળખાના વિસ્તરણ છે, અને તેથી માળખામાં કેટલીક સંબંધિત મર્યાદાઓ હોય છે. ઉદાહરણ તરીકે, માળખાને C ++ માં વર્ગો તરીકે સમાન ગણવામાં આવે છે, પરંતુ સભ્યો વર્ગોમાં મૂળભૂત રીતે (માળખામાં વિપરીત) જાહેર નથી.આનો અર્થ એ થાય કે તમે C ++ માં યોગ્ય એક્સેસ મોડિફાયર્સનો ઉપયોગ કરીને બરાબર સમાન લાક્ષણિકતાઓ સાથે ક્લાસ અને માળખું વ્યાખ્યાયિત કરી શકો છો. જોકે C માં, માળખામાં કોઈપણ વિધેયો અથવા ઓવરલોડ કામગીરી ન હોઈ શકે. ક્લાસ અને સ્ટ્રક્ટનો ઉપયોગ અનુક્રમે C ++ માં ક્લાસ અને સ્ટ્રકચરને વ્યાખ્યાયિત કરવા માટે થાય છે. જ્યારે તે આવે છે. નેટ ભાષાઓ (C #, VB.NET, વગેરે), વર્ગ એક સંદર્ભ પ્રકાર છે, જ્યારે માળખું એક મૂલ્ય પ્રકાર છે. અને સામાન્ય રીતે, માળખાઓ નાની વસ્તુઓ માટે ઉપયોગમાં લેવાય છે, પરંતુ લાંબા સમય માટે મેમરીમાં રાખેલ મોટા પદાર્થો માટે વર્ગોનો ઉપયોગ કરવામાં આવે છે.