Klasser vs strukturer
Nogle af hovedbegreberne i Objektorienteret (OO) programmeringssprog er indkapsling, arv og polymorfisme. Klasse og struktur er to af OO-konstruktioner / -værktøjer, der hjælper programmerere med at nå disse koncepter inden for de fleste af de spændende OO-programmeringssprog (Java giver ikke strukturer). Klasser er en abstrakt repræsentation af objekter i den virkelige verden. Strukturer ligner meget klasser med lignende anvendelse, men har få begrænsninger sammenlignet med klasser. Både klasser og struktur bruges til at gruppere lignende type data sammen.
Hvad er klasser?
Klasser skildrer den abstrakte repræsentation af objekter i den virkelige verden, mens forholdene viser, hvordan hver klasse er forbundet med andre. Både klasser og forhold har egenskaber, der kaldes attributter. Metoder i klasserne repræsenterer eller definerer opførelsen af disse klasser. Metoder og attributter for klasser kaldes klassens medlemmer. Typisk opnås indkapsling ved at gøre attributterne private, mens der oprettes offentlige metoder, der kan bruges til at få adgang til disse attributter. Et objekt er forekomsten af en klasse. Arv giver brugeren mulighed for at udvide klasser (kaldet underklasser) fra andre klasser (kaldet superklasser). Polymorfisme giver programmereren mulighed for at erstatte et objekt i en klasse i stedet for et objekt i dens superklasse. Typisk bliver substantiverne, der findes i problemdefinitionen, direkte klasser i programmet. Og på samme måde bliver verb til metoder. Offentlige, private og beskyttede er de typiske adgangsmodifikatorer, der bruges til klasser. Et klassediagram viser systemernes klasser, forhold mellem klasser og deres attributter.
Hvad er strukturer?
Som nævnt ovenfor ligner strukturer meget klasser med lignende anvendelse, men er lidt begrænsede muligheder end klasser. Faktisk kan klasser betragtes som en udvidelse til strukturer. For eksempel er strukturer de samme som klasser i C ++, men de har som standard offentlige medlemmer. En struktur kan defineres af brugeren til at repræsentere en type, der er sammensat. I lighed med klasser indeholder strukturer medlemmer, der kan høre til mange typer. Nøgleordet struktur bruges til at definere en struktur i C og C ++, mens nøgleordet Struktur bruges til det samme i .NET programmeringssprog.
Hvad er forskellen mellem klasser og strukturer?
Selvom både klasser og strukturer er lignende konstruktioner, der findes i programmeringssprog, har de subtile forskelle. Klassen er typisk en udvidelse af strukturen, og derfor har strukturer nogle relative begrænsninger. For eksempel kan strukturer betragtes som det samme som klasser i C ++, men medlemmer er som standard ikke offentlige i klasser (i modsætning til i strukturer). Dette betyder faktisk, at du kan definere en klasse og en struktur med nøjagtigt de samme egenskaber ved hjælp af de passende adgangsmodifikatorer i C ++. I C kan strukturer dog ikke indeholde funktioner eller overbelastede operationer. Nøgleordsklasse og struktur bruges til at definere en klasse og en struktur i henholdsvis C ++. Når det kommer til .NET-sprog (C #, VB.NET osv.) Er klasse en referencetype, mens struktur er en værditype. Og normalt bruges strukturer til mindre objekter, men klasser bruges til større objekter, der opbevares i hukommelsen i længere perioder.