C# Flashcards
Wat is een klasse?
Een klasse is een blauwdruk voor objecten. Het definieert de eigenschappen (attributen/velden) en methoden (gedrag) die het object zal hebben.
Wat is een object?
Een instantie van een klasse. Met een klasse definieer je een type, en met objecten creëer je specifieke instanties van dat type.
Wat is encapsulation?
Dit principe houdt in dat de data van een object wordt afgeschermd door middel van toegangsmodifiers (zoals private, protected, en public). Alleen via gedefinieerde methoden of properties kan er toegang worden verkregen tot de interne gegevens van het object.
Wat is inheritance?
Klassen kunnen eigenschappen en methoden overerven van een andere klasse. Dit bevordert herbruikbaarheid en maakt je code flexibeler.
Een basisklasse kan algemene functionaliteit bevatten, terwijl afgeleide klassen deze functionaliteit kunnen uitbreiden of aanpassen.
Wat is polymorphism?
Polymorfisme staat toe dat methoden op verschillende manieren kunnen worden gebruikt, afhankelijk van het object dat het aanroept.
Dit kan door overerving (waarbij een afgeleide klasse een methode van de basis kan overschrijven) of interface-implementatie.
Method overriding: In afgeleide klassen kun je methoden van de basisklasse opnieuw definiëren.
Method overloading: Methodes met dezelfde naam, maar verschillende parameters binnen dezelfde klasse.
Wat is abstraction?
Abstractie verbergt de complexe details van de implementatie en toont alleen de essentie van wat de gebruiker moet weten.
In C# kan dit worden gedaan met abstracte klassen of interfaces.
Een abstracte klasse kan niet worden geïnstantieerd, maar dient als een basis voor andere klassen. Abstracte methoden moeten in afgeleide klassen worden geïmplementeerd.
Wat is een constructor?
Een constructor is een speciale methode die wordt aangeroepen wanneer een object van een klasse wordt gemaakt. Het wordt gebruikt om het object te initialiseren.
C# ondersteunt parameterloze en geparametriseerde constructors.
Wat is een propertie?
Properties bieden een gecontroleerde manier om toegang te krijgen tot de velden van een klasse, vaak met get en set methodes.
Wat is een interface?
Een interface definieert een contract waar klassen zich aan moeten houden. Het bevat alleen de signaturen van methoden, en de klassen die de interface implementeren, moeten de methoden invullen.
Wat betekend static?
Het static keyword betekent dat een veld of methode toebehoort aan de klasse zelf in plaats van aan een specifiek object.
Statistische methoden kunnen worden aangeroepen zonder een object van de klasse te maken.
Wat is exception handeling?
Dit is het afvangen en afhandelen van fouten in je programma. In C# wordt dit gedaan met try, catch, finally, en throw.
Wat betekend public?
Wanneer een lid van een klasse als public wordt gemarkeerd, betekent dit dat het lid toegankelijk is voor alle andere klassen of methoden, zowel binnen als buiten de klasse waarin het is gedefinieerd.
Met andere woorden, alles dat public is, kan door andere klassen worden gezien en gebruikt.
Wat betekend private?
Een private lid is alleen toegankelijk binnen de klasse waarin het is gedefinieerd. Dit betekent dat andere klassen, zelfs die in hetzelfde project, geen directe toegang hebben tot dit lid.
Het wordt gebruikt om de toegang tot gegevens te beperken en te voorkomen dat de interne toestand van een object direct wordt gewijzigd van buiten de klasse.
Samenvatting
Encapsulatie: Gegevens verbergen en toegang beperken.
Klassen en objecten: Klassen zijn blauwdrukken voor objecten.
Erfelijkheid: Functionaliteit van een klasse hergebruiken in een afgeleide klasse.
Polymorfisme: Objecten van verschillende typen op dezelfde manier gebruiken.
Abstractie: Alleen de essentie van een object tonen.
Interfaces: Contracten definiëren zonder implementatie.
Constructors: Objecten initialiseren bij creatie.
Wat betekend protected?
protected leden zijn alleen toegankelijk binnen hun eigen klasse en afgeleide klassen (subklassen), zowel binnen hetzelfde project als binnen andere projecten die van de klasse erven.
Dit wordt vaak gebruikt in het geval van erfelijkheid, waar de afgeleide klasse toegang nodig heeft tot bepaalde methoden of velden van de basis-/superklasse, maar je wilt voorkomen dat andere klassen buiten de erfelijke relatie toegang hebben.