T2 - 2021 Flashcards
Stel dat de klasse vaag en abstract methode bevat. Wat is dan waar?
Je kunt geen object van het type vaag creëeren.
Aanroep van de methode Start van een Thread-object heeft tot gevolg dat.
De methode die bij de constructor van Thread werd meegegeven wordt aangeroepen.
De expressie 2 * ‘4’ heeft waarde
104, Als je rekent met characters, wordt er gerekend met de Unicode waarde van het karakter. De Unicode van ‘4’ is 52, dus keer 2 is dat 104.
Een verschil tussen een list en een collection
Een collection heeft geen indexer-property
Na de declaratie int[,,] a = new int [2,3,4]; heeft de array a … variabelen?
24 variabelen, 2 3 4 = 24 elementen
Het keyword value kan worden gebruikt binnen de definitie van een property
in de set-minimethode, en heeft dat de waard van de rechterkant van een toekenning aan de property
Is het mogelijk om in een klasse onder andere member-variable te declareren met diezelfde klasse als type?
Ja, dit kan altijd. In een struct zou dit oneindig veel geheugen kosten, maar in een class kan het, dankzij de verwijzing die er dan tussen ligt, wel. Ook circulaire structuren zijn mogelijk, als moet je dan wel uitkijken voor oneindige herhaling als je zo’n structuur met while zou doorlopen.
Stel dat je moet voortbouwen op een klasse die een collega-programmeur in je team geschreven heeft.
Je maakt daarom een kopie van de sourcecode, verandert de klassenaam en maakt de noodzakelijke
uitbreidingen en aanpassingen. Waarom is dit geen goed idee?
Met een subklasse zou de code van het team gemakkelijker te onderhouden zijn
In een subklasse van klasse K staat een methode met als header
public override void M()
Als je in de body van deze methode de oorspronkelijke methode M wilt aanroepen schrijf je
base.M();
In sommige libraries worden naast klassen ook interfaces gedefinieerd.
Wat staat er in de body van zo’n interface?
In een interface staan alleen maar methode- (en property-) headers, dus zonder body.
In sommige libraries worden naast klassen ook interfaces gedefinieerd.
Als er een interface I bestaat, kun je daarna een klasse K de nieren met als header
class K : I
Wat voor gevolgen heeft het in de header vermelden van zo’n interface I
voor de klasse K ?
Met class K : I wordt aangeven dat de klasse K alle in de interface I genoemde members implementeert.
In sommige libraries worden naast klassen ook interfaces gedefinieerd.
Als er een klasse A bestaat, kun je daarna een klasse B definieren met als header
class B : A
Wat voor gevolgen heeft het in de header vermelden van zo’n andere klasse A
voor de klasse B ?
Met class B : A wordt aangeven dat de klasse B alle in de superklasse A genoemde members mag gebruiken, en virtual methoden ook mag overriden.
Van string-objecten wordt gezegd dat ze immutable zijn.
Toch kun je declareren:
string voorbeeld = “Hallo”;
en dan later nog schrijven:
voorbeeld += “!”;
Waarom is het toch correct om te zeggen dat string-objecten immutable zijn?
Antwoord: Het object met de string “Hallo” blijft ongewijzigd. Er wordt een
Het object met de string “Hallo” blijft ongewijzigd. Er wordt een nieuw object gemaakt met de inhoud “Hallo!”. De variabele voorbeeld bevat een verwijzing naar het object,
en die mag wel veranderen.
Van string-objecten wordt gezegd dat ze immutable zijn.
Ook bij het type int kun je declareren
int test = 15;
en dan later nog schrijven:
test += 3;
Waarom wordt van int, in tegenstelling tot van string, niet gezegd wordt dat het immutable is?
`Immutable’ zeg je van objecten, als de membervariabelen niet kunnen veranderen. Maar int is een primitief type, dus daar kun je dat niet van zeggen. Ook goed: een int-variabele bevat niet een verwijzing naar een object, maar de waarde zelf. Die
waarde kan wel veranderen.
Van string-objecten wordt gezegd dat ze immutable zijn.
De operator += wordt ook nog in een hele andere context gebruikt.
Welke context is dat, en wat is dan de semantiek?
De context is die van het registreren van eventhandlers.
De semantiek van eventProperty += eventHandler is dat de eventHandler-methode zal worden aangeroepen zodra de event behorende bij deze property optreedt.