Van domeinklasse tot implementatie Java Van domeinklasse tot implementatie
Voorbeeld: Lesrooster Analyse: Een lesrooster bestaat uit een aantal lessen, waarbij een les de volgende informatie bevat: de naam van het vak, de dag en het uur (1e uur, 2e uur, et cetera) waarop de les gegeven wordt en het lokaal. Onderstreep de zelfstandige naamwoorden en haal ze apart: Lesrooster, aantal, les (3x), informatie, naam, vak, dag, uur, lokaal Breng de relaties in kaart (modelleren): Een lesrooster bestaat uit een aantal lessen Bestaat uit, is onderdeel van, bevat
diagram lesrooster bestaat uit lessen: Kl;jk;ljkl
diagram les bestaat uit vak, dag, uur, lokaal: Kl;jk;ljkl
diagram les bestaat uit vak, dag, uur, tijdstip, lokaal: Kl;jk;ljkl
diagram Tijdstip bestaat uit: Kl;jk;ljkl
diagram Kl;jk;ljkl
UML diagram domeinklassen
Implementatie klasse Tijdstip // De attributen public class Tijdstip { private String dag; private int uur; … }
Implementatie klasse Tijdstip public class Tijdstip { private String dag; private int uur; //constructor public Tijdstip( String dag, int uur ) { this.dag = dag; this.uur = uur; } …
Implementatie klasse Tijdstip public class Tijdstip { private String dag; private int uur; public Tijdstip( String dag, int uur ) { this.dag = dag; this.uur = uur; } //Getter public String getDag() { return dag; ….
Implementatie klasse les public class Les { private String vak; private Tijdstip tijdstip; private String lokaal; //constructor public Tijdstip( String vak, Tijdstip tijdstip, String lokaal ) { this.vak = vak; this.tijdstip = tijdstip; this.lokaal = lokaal; } …
Nieuwe les //Eerst tijdstip aanmaken: Tijdstip t = new Tijdstip( “maandag”, 3 ); // dan nieuwe les aanmaken: Les les = new Les( “Java”, t, “015”); //Of via naamloze instantie: Les les = new Les( “Java”, Tijdstip(“maandag”, 3), “015”);
Implementatie lesrooster Vraag: uit hoeveel lessen bestaat lesrooster? Nul? Eén? Twee? Zestien? We weten dat niet van te voren. Oplossing: collecties ArrayList is een collectie-klasse waarin je objecten kunt plaatsen public class Lesrooster { private ArrayList<Les> lijst; … }
Implementatie lesrooster //ArrayList komt uit package java.util: import java.util.* public class Lesrooster { private ArrayList<Les> lijst; //constructor: public Lesrooster() { lijst = new ArrayList<Les>() } …
Toevoegen lessen aan lesrooster // Methode om ArrayList te vullen: public void voegtoe( Les les ) { lijst.add( les ); } // Doorlopen ArrayList: public void print() { for( Les x : lijst ) { System.out.println( x );