Forskel mellem klasser og strukturer

Anonim

Klasser vs Konstruktioner

Nogle af hovedbegreberne i Objektorienterede (OO) programmeringssprog er indkapsling, arv og polymorfisme. Klasse og struktur er to af OO-konstruktionerne / værktøjerne, som hjælper programmører til at opnå disse begreber inden for de fleste af de spændende OO-programmeringssprog (Java giver ikke strukturer). Klasser er en abstrakt repræsentation af virkelige verden objekter. Strukturer ligner meget klasser med tilsvarende anvendelse, men har få begrænsninger i forhold til klasser. Både klasser og struktur bruges til at gruppere lignende typer data sammen.

Hvad er klasser?

Klasser skildrer den abstrakte repræsentation af virkelige verden objekter, mens relationerne viser hvordan hver klasse er forbundet med andre. Både klasser og relationer har egenskaber kaldet attributter. Metoder i klasserne repræsenterer eller definerer opførelsen af ​​disse klasser. Metoder og attributter af klasser kaldes medlemmerne af klassen. Typisk indkapsling opnås ved at gøre attributterne private, samtidig med at der oprettes offentlige metoder, som 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 af en klasse i stedet for et objekt af sin superklasse. Typisk er substantiverne, der findes i problemdefinitionen, direkte blevet klasser i programmet. Og tilsvarende bliver verb'er metoder. Offentlige, private og beskyttede er de typiske adgangsmodifikatorer, der anvendes til klasser. Et klassediagram viser systemernes klasser, relationer mellem klasser og deres attributter.

Hvad er strukturer?

Som nævnt ovenfor svarer strukturer meget til klasser med tilsvarende anvendelse, men er lidt begrænsede evner end klasser. Faktisk kan klasser betragtes som en udvidelse til strukturer. For eksempel er strukturer ens som klasser i C ++, men de har som regel offentlige medlemmer. En struktur kan defineres af brugeren til at repræsentere en type, der er sammensat. Ligesom klasser indeholder strukturer medlemmer, der kan tilhøre mange typer. Søgeordstrukturen bruges til at definere en struktur i C og C ++, mens søgeordstrukturen bruges til det samme i. NET programmeringssprog.

Hvad er forskellen mellem klasser og strukturer?

Selv om både klasser og strukturer er lignende konstruktioner, der findes i programmeringssprog, har de subtile forskelle. Typisk er klassen en udvidelse af strukturen, og derfor har strukturer nogle relative begrænsninger. For eksempel kan strukturer betragtes som de samme som klasser i C ++, men medlemmer er som standard ikke offentlige i klasser (i modsætning til strukturer).Det betyder faktisk, at du kan definere en klasse og en struktur med nøjagtigt de samme egenskaber ved hjælp af de relevante adgangsmodifikatorer i C ++. Men i C kan strukturer ikke indeholde nogen funktioner eller overbelastede operationer. Nøgleord klasse og struct bruges til at definere en klasse og en struktur i henholdsvis C ++. Når det kommer til. NET-sprog (C #, VB. NET, etc.), klassen er en reference type, mens strukturen er en værdi type. Og normalt bruges strukturer til mindre genstande, men klasser bruges til større genstande, der holdes i hukommelsen i længere perioder.