1.3-Object-Georienteerd-Programmeren

Autoverkoop

Een autohandelaar handelt in auto’s. Het bijhouden van de voorraad (welke auto’s beschikbaar zijn) is iets dat gemakkelijk geautomatiseerd kan worden. Vandaag schrijven we een eenvoudige versie van een systeem dat mogelijk door handelaren gebruikt kan worden.

Maak een klasse Dealership met twee publieke methoden:

Merk op dat de addCar methode een Car instantie als argument vereist, dus maak ook deze Car klasse. Deze klasse heeft verder slechts twee attributen: license plate (kenteken) en brand (merk). Maak deze attributen onveranderlijk door alleen getters en een constructor aan je klasse toe te voegen.

Nadat je ervoor gezorgd hebt dat je programma werkt (gebruik onze code of voeg zelf wat dummygegevens toe), breid je deze uit door een een extra controle aan het systeem toe te voegen: Een dealer kan geen twee auto’s hebben met dezelfde hetzelfde kenteken. Als je een auto met hetzelfde kenteken (ongeacht het merk) probeert toe te voegen aan een Dealership instantie (die al een auto met dat kenteken heeft), moet er een IllegalArgumentException gegooid worden. Pas je programma aan en test of deze controle goed werkt.

Sequence Diagram

Een sequence diagram laat de flow van een actie door een programma zien. Het toont welke class welke andere class aanroept en hoe lang die class actief is gedurende de uitvoering.

Er kunnen verschillende niveau’s van detail gebruikt worden afhankelijke van hoe dicht bij implementatie ze zijn.

Add Car

Een instantie bestaat niet totdat deze gemaakt is, pas dan kan het worden gebruikt in opvolgende statements.

Number of cars by brand

Hieronder is een voorstel van hoe getNrOfCarsByBrand zou kunnen werken met hoe de classen met elkaar interacteren. Wat hier niet word getoond is hoe we op het aantal auto’s komen, dit zul je zelf moeten bedenken.