Klasser kontra strukturer
Noen av hovedkonseptene til objektorienterte (OO) programmeringsspråk er innkapsling, arv og polymorfisme. Klasse og struktur er to av OO-konstruksjonene/verktøyene, som hjelper programmerere med å oppnå disse konseptene innenfor de fleste spennende OO-programmeringsspråk (Java gir ikke strukturer). Klasser er en abstrakt representasjon av objekter i den virkelige verden. Strukturer ligner veldig på klasser med lignende bruk, men har få begrensninger sammenlignet med klasser. Både klasser og struktur brukes til å gruppere lignende type data sammen.
Hva er klasser?
Klasser skildrer den abstrakte representasjonen av objekter fra den virkelige verden, mens relasjonene skildrer hvordan hver klasse er knyttet til andre. Både klasser og relasjoner har egenskaper som kalles attributter. Metoder i klassene representerer eller definerer oppførselen til disse klassene. Metoder og attributter til klasser kalles medlemmene av klassen. Vanligvis oppnås innkapsling ved å gjøre attributtene private, mens man oppretter offentlige metoder som kan brukes for å få tilgang til disse attributtene. Et objekt er forekomsten av en klasse. Arv lar brukeren utvide klasser (k alt underklasser) fra andre klasser (k alt superklasser). Polymorfisme lar programmereren erstatte et objekt i en klasse i stedet for et objekt i superklassen. Vanligvis blir substantivene som finnes i problemdefinisjonen direkte klasser i programmet. Og på samme måte blir verb metoder. Offentlig, privat og beskyttet er de typiske tilgangsmodifikatorene som brukes for klasser. Et klassediagram viser systemenes klasser, relasjoner mellom klasser og deres attributter.
Hva er strukturer?
Som nevnt ovenfor, er strukturer veldig like klasser med lignende bruk, men har litt begrensede muligheter enn klasser. Faktisk kan klasser betraktes som en utvidelse til strukturer. For eksempel er strukturer de samme som klasser i C++, men de har offentlige medlemmer som standard. En struktur kan defineres av brukeren for å representere en type som er sammensatt. I likhet med klasser inneholder strukturer medlemmer som kan tilhøre mange typer. Nøkkelordet struct brukes til å definere en struktur i C og C++, mens nøkkelordet Structure brukes for det samme i. NET programmeringsspråk.
Hva er forskjellen mellom klasser og strukturer?
Selv om både klasser og strukturer er lignende konstruksjoner som finnes i programmeringsspråk, har de subtile forskjeller. Typisk er klassen en forlengelse av strukturen, og derfor har strukturer noen relative begrensninger. For eksempel kan strukturer betraktes som de samme som klasser i C++, men medlemmer er ikke offentlige som standard i klasser (i motsetning til i strukturer). Dette betyr faktisk at du kan definere en klasse og en struktur med nøyaktig de samme egenskapene ved å bruke de riktige tilgangsmodifikatorene i C++. I C kan strukturer imidlertid ikke inneholde noen funksjoner eller overbelastede operasjoner. Nøkkelord klasse og struct brukes til å definere henholdsvis en klasse og en struktur i C++. Når det gjelder. NET-språk (C, VB. NET osv.), er klasse en referansetype, mens struktur er en verditype. Og vanligvis brukes strukturer for mindre objekter, men klasser brukes for større objekter som lagres i minnet i lengre perioder.