Object-oriented programming
20 belangrijke vragen over Object-oriented programming
Noem vier sterke punten van de taal C++
- De taal is compatible met de taal C
- C++ is een veelgebruikte taal voor zowel systeem- als applicatieprogramma's
- Er is een betere typecontrole dan in C
- De taal ondersteunt inclusiepolymorfie (overerving) en overloading
Noem vier zwakke punten van de taal C++
- Berekeningen met pointers zijn mogelijk. Dit maakt typecontrole lastig en kan tevens tot onverwachte resultaten leiden.
- Abstractie van gegevens wordt ondermijnd door andere voorzieningen van de taal.
- De taal ondersteunt meervoudige overerving, een controversieel concept.
- C++ is een hybride taal, zowel imperatief als objectgeoriënteerd
Noem vijf sterke punten van de taal Java
- Java heeft geen onveilige of onvoorspelbare voorzieningen.
- Berekeningen met pointers zijn onmogelijk
- Onbereikbare objecten worden automatisch verwijderd.
- De taal ondersteunt inclusiepolymorfie, overloading en parallel en gedistribueerd programmeren.
- Java heeft een rijke bibliotheek
- Hogere cijfers + sneller leren
- Niets twee keer studeren
- 100% zeker alles onthouden
Noem drie zwakke punten van de taal Java
- Verwerking van programmacode is traag.
- Tot 2004 was er geen ondersteuning voor generieke abstracties.
- Dynamic linking is in strijd met statische typecontrole.
Noem zes verschillen tussen een generieke package (Ada) en een OO-klasse
- Statische creatie vs. dynamische creatie van instanties
- Statische scoping vs. dynamische dispatch van procedurenamen
- Niet/wel overerving
- Niet/wel te gebruiken als argument of resultaat van een operatie
- Omgeving volledig gefixeerd vs. omgeving bepaald door ontvangende object
- Wel/niet mogelijk om variabelen rechtstreeks toegankelijk te maken
Noem twee overeenkomsten tussen een generieke package (Ada) en een OO-klasse
- Zowel in een generieke package als in een klasse worden geëxporteerde functies en procedures (methoden) en verborgen variabelen (attributen) gedefinieerd.
- Zowel van een generieke package als van een klasse kunnen instanties worden gecreëerd met hun eigen verzameling functies en procedures (methoden) en variabelen (attributen).
Noem twee verschillen tussen de architectuur van een imperatief programma en de architectuur van een objectgeoriënteerd programma
- Binnen een objectgeoriënteerd programma kan sprake zijn van subklassen;
- Een puur objectgeoriënteerd programma bestaat volledig uit klassen.
Wat is in C++ het verschil tussen een instance variable en een class variable?
[T12.3.5]
Wat is in C++ het verschil tussen een instance method en een class method?
[T12.3.5]
Waarom is dynamic linking in Java niet veilig?
[T12.4.7]
Noem twee inconsistenties in het ontwerp van Java
- Java gebruikt copy semantics voor primitieve waarden en (in effect) reference semantics voor objecten
- Omdat primitieve waarden geen objecten zijn, kunnen primitieve waarden niet gebruikt worden in methoden die op objecten werken. Om dit toch mogelijk te maken zijn wrapper-klassen en wrapping coercion geïntroduceerd.
Hoe kan een cartesisch product worden gemodelleerd in Java?
[C13.4]
Hoe kan een disjuncte vereniging worden gemodelleerd in Java?
[C13.4]
Waarom biedt een OO-taal van nature een meer volledige parametrisering van de omgeving waarop een methode effect heeft dan een imperatieve taal?
De omgeving van een methode in Java wordt volledig bepaald door het ontvangende object, zodat via de objectreferentie alle bindingen van namen aan entiteiten gedefinieerd worden.
[C13.5]
Wat is het kenmerkende verschil tussen functies en methoden?
Voor functies geldt statische scoping (de functieaanroep wordt tijdens de vertaling gekoppeld aan de functiedefinitie) en voor methoden geldt dynamische dispatch (de functieaanroep wordt tijdens verwerking gekoppeld aan de functiedefinitie).
[C13.7]
Wat is een virtuele functie zoals we die aantreffen in de C++?
Een virtuele functie is een methode de dynamisch wordt aangeroepen. Een dergelijke functie wordt gedefinieerd door middel van het sleutelwoord virtual.
Een virtuele functie kan in een subklasse worden geherdefinieerd. Het aantal en het type van de parameters moet dan hetzelfde zijn.
[C13.7]
Hoe wordt inclusiepolymorfie toegepast in C++?
C++ ondersteunt inclusiepolymorfie met dien verstande dat een object uitsluitend behandeld kan worden als object van zijn superklasse indien het object benaderd wordt via een pointer.
[T12.3.5]
Hoe wordt inclusiepolymorfie toegepast in C++?
[C13.zelftoets]
Door het toestaan van variabeledeclaraties in OO-packages wordt de parametrisering van de omgeving waarop een methode effect heeft minder volledig. Leg uit waarom.
[C13.zelftoets]
Mogen we in C++ in een subklasse een methode definiëren met dezelfde naam als een virtuele functie in een superklasse, maar met andere parametertypen?
De methode wordt in de subklasse als overloaded functie beschouwd.
[C13.zelftoets]
De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:
- Een unieke studie- en oefentool
- Nooit meer iets twee keer studeren
- Haal de cijfers waar je op hoopt
- 100% zeker alles onthouden