Belangrijkste begrippen informatica Datatype (bvb int, String) * geef

advertisement
Belangrijkste begrippen informatica
Datatype (bvb int, String)
* geef aan welk soort gegevens geschikt is als parameter
Constructor
*stelt velden in van een klasse bij aanmaken (=initialiseren)
* zelfde naam als klasse
Formele en actuele parameters
- Formeel: naam van parameter in definitie van methode;
- Actueel: feitelijke waarde van parameter indien methode wordt opgeroepen en uitgevoerd.
(bvb. TicketCost is formeel, door gebruiker ingevulde '500' is actueel.
Accesormethodes
* retourneert informatie over toestand object
*(heeft soms ook geen returnstatement)
Mutatormethodes
*veranderen velden van een object
Abstracte Methode
- abstracte methode komt voor in abstracte klasse;
- implementatie door 1 of meerdere subklassen;
- gebruik van aanroepen en overschrijving;
- illustratie met voorbeeld.
Wat bedoelt men met afhankelijkheid
onderlinge verbondenheid van klassen. De mate van afhankelijk geeft aan hoe nauw deze klassen met
elkaar verweven zijn. We streven naar een lage mate van afhankelijkheid = zwakke afhankelijkheid.
Mate van afhankelijkheid bepaalt hoe lastig het is om veranderingen in een toepassing aan te passen.
(elke klasse grotendeels onafhankelijk : communiceert met andere klassen via kleine goed
gedefinierde interface. (+voorbeeld)
Cohesie: Beschrijft hoe goed een stuk code verwijst naar een logische taak (methode), logisiche
entiteit (klasse). Goed klassenontwerp = hoge mate van cohesie. Voordeel: aanpassen van één aspect
toepassing blijft meestal beperkt tot dezelfde eenheid.
Inkapseling
alleen informatie over wat een klasse kan doen moet zichtbaar zijn, niet hoe. Zo is het makkelijk
aanpasbaar. goede inkapseling zorgt voor verminderde afhankelijkheid.
Verschil primitief, object DataType
primitieve types zijn vooraf gedefinieerd in de taal Java. (bvb int, boolean) Objecttypes worden
gedefiniëerd als klassen. (sommige door java-systeem bvb String)
Kunnen allebei gebruikt worden als type, maar verschil in gedrag:
Opslaan:
- primitief: rechtstreeks in een variabele (soms omweg nodig via wrapperklassen om in lijsten te
kunnen opslaan) (automatisch via autoboxing)
- object: wordt opgeslagen in verwijzing naar object
Goede elementen in antwoord examen:
- Verschil uitleggen in manier waarop deze datatypes worden opgeslagen in geheugen (op locatie
zelf of via referentie);
- Verschil i.v.m. gebruik collecties.
- Voorbeeldje geven van gebruik, bvb. copiëren variabelen met effect op opvraging waarde nadien.
Overladen van constructors
Klassendefinities hebben vaak verschillende versies van constructors of methodes die op
verschillende manieren een bepaalde taak uitvoeren, door andere set parameters te gebruiken.
-> new clockDisplay();
new clockDisplay(hour,minute);
Generieke klasse
- klassen die parameters van een ander type ontvangen bvb. ArrayList<String>; Generieke klassen
definiëren niet één type maar kunnen meerdere types.
Anoniem object
- object zonder naam bvb. userList.add(new Lot(..,..));
Array
- collectie met onveranderlijke omvang
-> kan wel objecten of waarden van primitief type bevatten
Static
- met static worden klassenvariabelen gedefinieerd. Klassevariabelen zijn velden die opgeslagen zijn
in een klasse zelf en niet in een object. -> Altijd slechts één exemplaar.
- Ook klassenmethodes = statische methodes
-klasse met enkel static methodes (bvb. Math, of zelf gedefinieerd
- methoden die niet uitgevoerd worden op object;
- illustratie met voorbeelden.
Klassenmethodes
-  instantiemethodes
- worden aangeroepen zonder een instantie, alleen de klasse volstaat.
final
- waarde mag niet meer veranderen
Overerving
- mechanisme waarmee gedupliceerde code kan worden vermeden. (klasse wordt gedefinieerd als
uitbreiding van andere klasse.
Subtypen/klassen/toekeningen _-> p 294-295
Substitutie
Subtypeobjecten kunnen gebruikt worden wanneer er objecten van een supertype
verwachtenworden. = substitutie
Polymorfe variabelen
Variabelen die objecttypes bevatten. De term polymorf slaat op het feit dat een variabele objecten van
verschillende types kan bevatten (subtype of supertype).
Casten
Als men weet dat supertype subtypeobject bevat, kan mbv castoperator toch worden opgeslagen.
Bvb Animal jos = new wolf(…);
wolf Dadwolf = (wolf) jos;
Statisch/Dynamische type
Het gedeclareerde type van de variabele = statische type (want is gedeclareerd in de broncode)
Type dat is opgeslagen in een variabele = dynamische type (afhankelijk van toekenning tijdens
uitvoering programma).
bvb. Vehicle v1 := new Car(); (Hierbij is Car subklasse van Vehicle)
statische type van v1 is Vehicle.
dynamische type van v1 is Car
Bij controleren van type (in compiler) wordt statische type gebruikt, bij het uitvoeren worden
methodes dynamische type gebruikt.
Polymorfisme van methodes
methodeaanroepen in Java zijn polymorf. Dezelfde methodeaanroep kan op verschillende tijstippen
verschillende methodes aanroepen, afhankelijk van het dynamisch type van de gebruikte variabele
voor die aanroep. (p 319)
Overschrijven: Een subklasse kan de implementatie van een methode overschrijven. Om dat te doen
declareert de subklasse een methode met dezelfde signatuur als de superklasse maar met een andere
body. Deze nieuwe methode heeft een hogere prioriteit bij methodeaanroepen voor objecten van de
subklasse.
Objectgelijkheid (p324)
Referentiegelijkheid (verwijzen naar zelfde object)  ==
Inhoudelijke gelijkheid  equals
Download