You are on page 1of 20

Samenvatting oosd

H1 Introduc,e Java-applica,es
Commentaar:
-//
-/*…*/

Dingen afrdrukken:

(%s, %S, %D, %n, %x, %o, %f, …)

Veldbreedte en cijfers na de komma:

Invoer:
Rekenkundige bewerkingen:

-*
-/
-+
--
-% (=geeB hij de rest weer)
-

(prioriteitsregel is van toepassing)

H2 Controlestructuren en operatoren
Nieuwe objecten maken:
Selec<estructuren:

If structuur:

Het statement wordt alleen uitgevoerd als de voorwaarde WAAR is (true).

If-else structuur:

-Of te wel wordt statement 1 uitgevoerd, of te wel statement 2. NOOIT BEIDE!


-statement 1 wordt enkel uitgevoerd als de voorwaarde true is.
-statement 2 wordt enkel uitgevoerd als de voorwaarde false is.

Je kunt dit ook perfect nesten:


De condi<onele operator:
switch structuur:

de switch structuur wordt gebruikt voor meervoudige selecWes.

Samengestelde toekenningspatronen:

Teller = teller + 1 = teller += 1

Increment en decrementoperatoren:

Teller += 1 = teller++

Verschil teller++ en ++teller


Herhalingsstructuren:

For lus:

Een for-lus wordt gebruikt om een reekst instrucWes herhaaldelijk uit te voeren. Het wordt
gebruikt om een stuk code x-aantal keer uit te voeren.

While lus:

Het statement wordt herhaald zolang de waarde true blijB.


Do-while lus:

Lijkt op while structuur maar wanneer de waarde false is voert hij het nog een keer uit.

Logische operatoren:

&& = en
|| = of
! = niet

Datatype: boolean

Kan enkel true or false zijn.

Datatype: char

Hierin kan je enkel één teken opslaan (bv: ! of a). Je moet dit ook tussen ‘’ zeaen.

Bv:
Char leaer1;
Leaer1 = ‘a’;

Datatype: byte

In dit datatype kun je gehele getallen tussen -128 en 127 bewaren.

Datatype: short

In dit datatype kun je gehele getallen tussen –32768 en 32767 bewaren.

Datatype: int

In dit datatype kun je gehele getallen tussen -2 147 483 648 en 2 147 483 647 bewaren.

Datatype: long

In dit datatype kun je gehele getallen tussen -9 223 372 036 854 775 808 en 9 223 372 036
854 775 807 bewaren.
Datatype: float en double

In dit datatype kun je komma getallen bewaren.

H3 klassen en objecten
Object (instan<es):

Elk object heeB een toestand, een gedrag en een idenWteit. Objecten zijn instanWes van
klassen en hebben dezelfde eigenschappen met een actuele waarde. Het type van actuele
waarde moet overeeen komen met het type in de klasse.

Klasse:

Een klasse bevat de omschrijving van de eigenschappen en het gedrag van de soortgelijke
objecten.

AJributen:

Elk object heeB meerdere aaributen, dit zijn de eigenschappen van het object.

Gedrag:

Een kenmerk van objecten is dat ze gedrag vertonen. Daaronder begrijpen we dat objecten
dingen kunnen doen, ze kunnen diensten verlenen. (objecten versturen booschappen naar
objecten en objecten ontvangen booschappen van objecten.)

Het sturen en ontvangen van booschappen noemen we communicaWe.


Iden<teit:

Ieder object heeB een unieke idenWteit. Dit maakt het mogelijk om objecten van elkaar te
kunnen onderscheiden. Twee objecten van eenzelfde klasse, met exact dezelfde waarden
voor hun aaributen, blijven via hun verschillende idenWteit ook twee unieke objecten.

Verantwoordelijkheid van een object:

Een object heeB een duidelijke, wel afgebakende verantwoordelijkheid, deze wordt
gerealiseerd via:
-de toestand, de eigenschappen van het object
-het gedrag, de diensten die het object aanbiedt.

Eén van de grote uitdagingen bij OO-ontwerpen is het toekennen van de juiste
verantwoordelijkheden aan de juiste soort objecten.
Klasse in UML:

(ter info: UML = Unified Modeling language)

Alle elementen in detail uitgelegd:

Klassennaam:

• in het midden van het bovenste vakje van de rechthoek


• moet betekenisvol zijn, de naam vertelt ons reeds heel veel over de klasse!
• gebruik steeds een zelfstandig naamwoord
• gebruik steeds enkelvoud, nooit meervoud
• de naam van een klasse start steeds met een hoofdleaer, en staat verder in camel case

AJributen:

Voor elk aaribuut defenieer je onderstaande zaken:


-visibiliteit (kan het geraadpleegt of gewijzigd worden?)
-naam (begint met kleine leaer daarna camelCase)
-datatype
-standaardwaarde (startwaarde, dit is niet verplicht)
Opera<es:

Voor elke operaWe leg je de signatuur als volgt vast:


-visibiteit (kunnen andere objecten beroep doen op dit gedrag)
-naam (start met kleine leaer daarna camelCase / start alWjd met stam ww / betekenisvolle
naam)
-parameters (welke gegevens moeten aangeleverd worden voor zinvolle operaWe, niet
verplicht)
-geaers (later meer…)
-seaers(later meer…)

Constructoren:

De constructoren worden eveneens in het vakje met operaWes vermeld, al behoren


constructors niet tot het gedrag van een object.

Ze zijn als volgt opgebouwd


◦ naam: is idenWek aan de naam van de klasse, inclusief de hoofdleaer. Merk op dat in het
vak met operaWes alleen de constructoren met een hoofdleaer beginnen.
◦ parameters: hiermee kunnen we waarden aanleveren die kunnen helpen om het
geïnstanWeerde object te iniWaliseren in een geldige toestand.

Overloading:

Je kan dit hebben bij methodes én bij constructoren: meerdere methodes/constructoren in


eenzelfde klasse kunnen dezelfde naam hebben maar dan moet de lijst van parameters wel
verschillen.
Weergave geJers en seJers:

-Een pijl naar rechts (wijst naar het aaribuut) : je kan het aaribuut een waarde geven, er is
een public seaer
-Een pijl naar links (wijst weg van het aaribuut) : je kan de waarde van het aaribuut
opvragen, er is een public geaer
-Ook de combinaWe van een pijl naar links én naar rechts is mogelijk: er is dan zowel een
public geaer als een public seaer
-Zelfs een aaribuut zonder pijltjes is theoreWsch mogelijk: er is geen public seaer en geen
public geaer

- = private
+ = public

Toegepast in java:

De klasse: (begint al<jd met hoofdleJer)


De aJributen:

Hoe kom je hier bij?

De geJers en seJers:

Kan handig zijn:

Een public seaer maken we alWjd final!


De constructoren:

UML -> code:


verdeling van applica<e:

cui: Dit bevat de flow van ons programma. Zal de nodige objecten aanmaken en gegevens
afdrukken zodat we iets te zien krijgen.

Domein: Dit bevat puur de fucWonaliteit.


Voorbeeld rommelmarkt:
ApplicaWeklasse:
Domeinklasse:
Implementa<e van domeinklasse:
Applica<eklasse:

Testen of alles werkt (testen van het domeinklasse):

Voegen we een package ‘testen’ toe en gebruiken we het teswramework Junit5.


Zo ziet het er dan uit:

You might also like