Code makkelijk toegankelijk maken
Vermijden heleboel piepkleine projectjes aan te maken
We gaan leren werken met grotere hoeveelheden code. We zullen voortaan niet meer al onze programma's in een apart project plaatsen, maar een keuzemenu gebruiken om daaruit alle andere programma's op te starten.
Wanneer de gebruiker de Main
van de klasse Program
opstart, krijg je een keuzemenuutje. Hierop worden omschrijvingen getoond voor alle oefeningen die je al hebt, gevolgd door de unieke titel van de oefening in kwestie. Wanneer de gebruiker het getal intypt dat overeenstemt met een oefening, wordt de oefening opgestart.
Voorbeeldoutput:
Wat wil je doen?
1. Vormen tekenen (h8-vormen)
2. Auto's laten rijden (h8-autos)
3. Patiënten tonen (h8-patienten)
4. Honden laten blaffen (h8-blaffende-honden)
Wanneer de gebruiker een van deze opties kiest door het juiste getal in te typen, wordt dat programma opgestart. Als hij iets intypt dat niet kan worden uitgevoerd, komt er een boodschap ongeldig getal!
. Wanneer je dit programma voor het eerst schrijft, kan je alleen nog maar ongeldige keuzes maken.
Doorloop de instructies en uitleg op ModernWays, maar let op volgende zaken:
We werken niet in een map voor het vak "Programmeren 3", maar in een map "OOP" (zoals de namespace die we hanteren, maar dat is geen regel die C# oplegt).
Indien je reeds een project met de naam OOP hebt, hoef je géén nieuw project aan te maken.
Je gebruikt ShapesBuilder.cs
in plaats van Vormen.cs
en schrijft in het algemeen je code in het Engels.
Je gebruikt de namespace OOP.Geometry
in plaats van Wiskunde.Meetkunde
.
Als je van stap 6 naar stap 7 gaat, laat je de code voor de eigenschap Color
staan.
Later zullen we deze code refactoren om nog meer gebruik te maken van objecten.
Kennismaking met OOP
We bouwen een simulatie van rijdende auto's. We voorzien deze van een kilometerteller, een huidige snelheid, een methode om de gaspedaal te simuleren en om de rem te simuleren.
We starten vanaf de klasse Auto
uit de cursus (maar noemen deze Car
).
We voegen eigenschappen Odometer
en Speed
toe, beide doubles
.
We zorgen dat de snelheid nooit onder de 0km/u kan gaan en nooit boven de 120km/u door de eigenschap aan te passen.
We schrijven klassikaal een methode Gas()
die de snelheid met 10km/u verhoogt en de auto verplaatst met zijn gemiddelde snelheid / 60 (om één minuut rijden te simuleren). De gemiddelde snelheid is het gemiddelde van de snelheid voor en na het verhogen.
We schrijven individueel een methode Brake
die gelijkaardig werkt, maar die de snelheid met 10 km/u verlaagt.
We schrijven een methode Main
die twee auto's aanmaakt
de eerste vijf keer laat versnellen, drie keer laat remmen
de tweede tien keer laat versnellen en een keer laat remmen
in onderstaand formaat de snelheid en afgelegde weg afprint: auto 1: km/u, afgelegde weg km auto 2: km/u, afgelegde weg km
Kennismaking met OOP
Kennismaking met refactoring
Toepassing van encapsulatie
We hebben al wat code, maar we vinden deze moeilijk te onderhouden omdat we allerlei variabelen moeten onderhouden. We refactoren deze om zo een meer objectgericht en beter onderhoudbaar programma te bekomen.
Introduceer een klasse Patient
Vervang alle arrays door één array van objecten van de klasse Patient
Zorg dat het afgeprinte verslag er identiek uitziet aan het oorspronkelijke verslag
Code om van te starten:
Kennismaking met OOP Kennismaking met refactoring
Toepassing van abstractie
We krijgen een programma dat al objecten bevat, maar dit programma moet zelf nog veel rekening houden met hoe deze objecten in elkaar zitten. We refactoren het om zo een meer objectgericht en beter onderhoudbaar programma te bekomen.
Je krijgt volgende twee files. De bestandsnamen volgen de afspraak:
en
Volg hierbij volgende stappen:
Maak de random generator statisch onderdeel van de klasse BarkingDog
.
Voeg volgende code toe binnen de klasse BarkingDog
:
git status -u
!