Zie uitleg print methode. Dit is een voorbeeld uit de klasse klok.

advertisement
By Pieter Van der Elst
Samenvatting Beginselen van Objectgericht Programmeren (BOP)
Hoe ziet een klasse eruit?
(1)
Een UML bestand!
Dit is heel belangrijk bij het maken van een klasse. Hierin zet men de naam van de klasse, de
instantievariabelen (of deze private/public zijn duidt men aan met een -/+), en daarna de
verschillende methoden die je gaat implementeren (of deze private/public zijn, wordt ook
aangeduidt d.m.v. -/+).
(2)
Het hoofd van de klasse
“public class naam” naam = de naam van de klasse.
(3)
De declaratie van je instantievariabelen
Meestal zijn deze private.
“private int/String …2” het type (int/string) hangt natuurlijk af van wat voor
instantievariabele je nodig hebt, en de … staat voor de naam van de instantievariabelen.
(4)
Constructoren
Hiermee kan je als je bv. een klasse punt hebt, een nieuw punt aanmaken. Je hebt
constructoren zonder parameters of met parameters.
“public …1(){}”
Dit is een constructor zonder parameters, waar bij …1 de naam v/d klasse wordt ingegeven.
“public …1(int/string …2, int/string …2,…2){
This.set…2(…2);
This.set…2(…2);
}”
Dit is een constructor met parameters, waar bij …1 de naam van de klasse wordt ingegeven.
Bij …2 wordt de naam van de instantievariabele gegeven.
(5)
Getters
Dit zijn de methoden die gebruikt worden om bepaalde waarden terug te geven. Deze
hebben NOOIT parameters.
“public Type getIets(){
Return this.iets;
}”
Het type hangt af van de instantievariabele (…2), en het bevel return geeft aan dat er een
bepaalde waarde moet worden teruggegeven.
By Pieter Van der Elst
(6)
Setters
Dit zijn de methoden die gebruikt worden om bepaalde waarden aan een instantievariabele
toe te kennen. Deze hebben ALTIJD parameters, anders zouden ze de waarden niet kunnen
aanpassen.
“public void setIets (Type iets){
This.iets = iets;
}”
Er wordt hier void gebruikt, omdat er niets moet worden teruggegeven. Het type hangt af van
de instantievariabele.
(7)
Aparte methoden per klasse
Er zijn bepaalde specifieke methoden die alleen bruikbaar zijn in bepaalde klasses. Zo heb je
bv. MoveHorizontal voor de klasse punt, zo heb je VeranderUren voor de klasse klok, zo heb
je isEvenveel (boolean) voor o.a. de klasse Breuk en de klasse OilTank.
“public boolean isEvenVeel (Breuk b){
boolean OK = true;
If (b != null) OK = ((double)this.getTeller()/this.getNoemer()) ==
((double)b.getTeller()/b.getNoemer());
return OK;
}”
In deze methode wordt nagekeken of twee breuken gelijk zijn. != betekent verschillend van,
== staat voor gelijk aan (= betekent dat die bepaalde waarde aan die instantievariabele wordt
toegekend).
(8)
Print methode
Dit is de eenvoudige methode om het resultaat weer te geven. Maar, als men met een link
werkt tussen verschillende klassen gaat men gebruik maken van de toString methode, die in
principe hetzelfde doet, maar die gebruikt kan worden in de verschillende klassen.
“public void Print(){
System.out.println(“…” + this.get…2() + “…”);
}”
Het is een void, omdat het commando print al zegt dat er iets moet weergegeven worden. De
… staat voor de tekst die moet weergegeven worden, de + zegt dat er nog iets bij moet, en het
getter-commando zegt wat er nog bijmoet.
By Pieter Van der Elst
(9)
toString methode
Dit doet in principe hetzelfde als de print methode, maar kan in verschillende (gelinkte)
klasses gebruikt worden.
“public String toString(){
String uit = “ “;
Uit += (this.get…2() <10? “0” : “ “) + this.get…2();
Uit += (this.get…2() <10? “0” : “ “) + this.get…2();
}”
Zie uitleg print methode. Dit is een voorbeeld uit de klasse klok.
Download