Java Week 4
Behandelde Stof : Hoofdstuk 4,7,8 uit de reader
Identifiers
- Identifiers worden gedefinieerd door
een grammatica.
Het zijn dus rijtjes/strings unicode-karakters van een speciale vorm.
- Ten eerste moeten de karakters
Java letters zijn.
- Wat dat weer zijn is exact gespecificeerd in
een lange tabel
(deel 1,
deel 2).
- Verder mogen identifiers geen
keywords zijn.
- (Alle volgende voorbeelden betreffen het creeren van twee objecten
die beide een punt in het platte vlak zijn,
en beide bestaan uit een x- en een y-coordinaat.)
- Hoofdstuk 7 en 8 : Classes en objects
- Het programmeren in Java bestaat hoofdzakelijk uit het
vormen van de juiste klassen. De klasse specificeert
de vorm van alle objecten behorend tot die klasse.
Je kunt aan de klasse denken als aan een mal/stempel
met behulp waarvan objecten gemaakt kunnen worden.
- De verhouding tussen class-es en
objects uitgelegd aan de hand van analogieen:
slide.
- Twee punten creeren:
Main1 en
Point1.
Point1 is een klasse met twee velden: x en y,
beide van type int.
- Creatie mbv constructor:
Main2 en
Point2.
De constructor is een `methode' met twee parameters: a en b,
beide van type int. Bij aanroep van de constructor worden
de parameters geinstantieerd door de concrete waarden
(0,1) en (2,3) respectievelijk.
De constructor is geen echte methode,
want hij kan alleen bij object create (mbv new)
aangeroepen worden.
Merk op dat this altijd wijst naar
het `huidige' object.
- Uitlezen van punten get-methode:
Main3 en
Point3.
Ipv van de velden direkt op te vragen
(mbv bv p1.x in Point1.java en Point2.java)
zijn er methoden getx() en gety()
die deze functionaliteit implementeren.
de return-statement wordt gebruikt om
de waarde te retourneren.
- De verhouding tussen private en public
uitgelegd aan de hand van analogieen:
slide.
Merk op dat in Point2 en Point1 de velden
x en y van buitenaf zichtbaar zijn (ze zijn impliciet zichtbaar).
Door het beschikbaar zijn de van de constructor
Point3 en de methoden getx() en gety()
hoeft dat nu niet meer en kunnen ze onzichtbaar
voor andere klassen gemaakt worden dmv
de private-modifier.
- Veranderen van coordinaten van een punt met set-methoden
Main4 en
Point4.
Set-methoden zijn duaal/tegenovergesteld aan get-methoden.
Merk op dat de twee x-en in de statement this.x = x;
van de setx-methode verschillende rollen vervullen:
this.x is het x-veld van het huidige (this) Point4 object.
De rechter x is de parameter van de methode.
- Punten kunnen intern anders opgeslagen worden:
Main5 en
Point5.
Het werken met get- en set-statements
maakt een interne representatie van punten
mogelijk die onafhankelijk is van de externe
representatie (bv gecomprimeerd).
- Een veld of methode van een object
is statisch als het behoort tot de klasse zelf
en niet tot diens objecten.
Anders gezegd: alle objecten delen hetzelfde
veld of dezelfde methode.
Typsich voorbeelden van static is de constantie pi.
- Foutieve kwalificatie van velden als zijnde statisch
leidt tot ongewenste resultaten:
Main6 en
Point6.
- Hoofdstuk 4 : Interfaces
- Vb van de Point-interface die de functionaliteit van
punten abstract specificeert:
Main7,
Point7 en
Point
De klasse Point7 geeft een concrete invulling
aan het Point interface door voor ieder
van de methoden in Point een concrete
implementatie (method-body) aan te geven.
- Meerder implementatie van hetzelfde interface
naast elkaar: Main1,
Point8 en
Point.
Verschillende implementaties van Point
(Point7 en Point8 kunnen naast elkaar
gebruikt worden en hebben dezelfde
functionaliteit (tenminste wat hun
interface betreft).
Opgaven:
- Theorie : geen.
- Praktijk: Lab2.