Klassen versus structuren
Enkele van de belangrijkste concepten van Object Oriented (OO) programmeertalen zijn inkapseling, overerving en polymorfisme. Klasse en structuur zijn twee van de OO-constructs / -hulpmiddelen, die programmeurs helpen deze concepten te bereiken binnen de meeste exiting OO-programmeertalen (Java biedt geen structuren). Klassen zijn een abstracte weergave van objecten uit de echte wereld. Structuren lijken erg op klassen met een vergelijkbaar gebruik, maar hebben weinig beperkingen ten opzichte van klassen. Beide klassen en structuur worden gebruikt om hetzelfde type gegevens samen te groeperen.
Wat zijn klassen?
Klassen geven de abstracte representatie van echte wereldobjecten weer, terwijl de relaties weergeven hoe elke klas verbonden is met anderen. Zowel klassen als relaties hebben eigenschappen die attributen worden genoemd. Methoden in de klassen vertegenwoordigen of definiëren het gedrag van deze klassen. Methoden en kenmerken van klassen worden de leden van de klas genoemd. Doorgaans wordt encapsulatie bereikt door de attributen privé te maken, terwijl openbare methoden worden gecreëerd die kunnen worden gebruikt voor toegang tot die attributen. Een object is het exemplaar van een klasse. Met overerving kan de gebruiker klassen (subklassen genoemd) uitbreiden met andere klassen (superklassen genoemd). Polymorfisme stelt de programmeur in staat om een object van een klasse te vervangen in plaats van een object uit zijn superklasse. Doorgaans worden de zelfstandige naamwoorden die in de probleemdefinitie worden gevonden, direct klassen in het programma. En op dezelfde manier worden werkwoorden methoden. Publiek, privé en beschermd zijn de typische toegangsmodifiers die voor klassen worden gebruikt. Een klassediagram toont de klassen van het systeem, relaties tussen klassen en hun kenmerken.
Wat zijn structuren?
Zoals hierboven vermeld, lijken structuren sterk op klassen met een vergelijkbaar gebruik, maar hebben ze iets beperkte mogelijkheden dan klassen. In feite kunnen klassen worden beschouwd als een uitbreiding op structuren. Structuren zijn bijvoorbeeld hetzelfde als klassen in C ++, maar ze hebben standaard openbare leden. Een structuur kan door de gebruiker worden gedefinieerd als een type dat samengesteld is. Net als bij klassen bevatten structuren leden die bij veel typen kunnen horen. Het sleutelwoord struct wordt gebruikt om een structuur in C en C ++ te definiëren, terwijl de structuur van het sleutelwoord hetzelfde wordt gebruikt in .NET programmeertalen.
Wat is het verschil tussen klassen en structuren?
Hoewel beide klassen en structuren soortgelijke constructies zijn die worden aangetroffen in programmeertalen, hebben ze subtiele verschillen. Doorgaans is de klasse een uitbreiding van de structuur en daarom hebben structuren een aantal relatieve beperkingen. Structuren kunnen bijvoorbeeld als hetzelfde worden beschouwd als klassen in C ++, maar leden zijn standaard niet openbaar in klassen (in tegenstelling tot structuren). Dit betekent in feite dat je een klasse en een structuur met exact dezelfde kenmerken kunt definiëren met behulp van de juiste toegangsmodifiers in C ++. In C kunnen structuren echter geen functies of overbelaste bewerkingen bevatten. Trefwoordenklasse en struct worden gebruikt om respectievelijk een klasse en een structuur in C ++ te definiëren. Als het gaat om .NET-talen (C #, VB.NET, enz.), Is klasse een referentietype, terwijl structuur een waardetype is. En meestal worden structuren gebruikt voor kleinere objecten, maar klassen worden gebruikt voor grotere objecten die langer in het geheugen worden bewaard.