
Programmeren 1
Access modifiers, objectconstructie en static
Doelstelling
We bespreken de rol van public
en private
. We bekijken hoe objecten snel en efficiënt aangemaakt kunnen worden met een constructor. We oefenen het sleutelwoord static
.
Leerpad
Lees aandachtig volgende delen van het Yellow Book.
- 4.6 (volledig)
- 4.7 (volledig)
Tijdens de les maken we volgende oefeningen:
-
Schrijf een methode
Initialize(Hive hive)
voor de klasseBee
, die een bij laat starten met een willekeurige hoeveelheid pollen van 0 tot 10 en die de bij koppelt aan de meegegevenHive
. Als er geenHive
wordt meegegeven, moet deze methode eenException
gooien. - Schrijf een objectmethode
HasPollen()
met return typebool
die gebruikt kan worden om na te gaan of een bij pollen met zich meedraagt. - Schrijf een uitgebreide versie van
DemonstrateBeesAndHives
,DemonstrateBeesAndHives2
, die de bijen initialiseert metInitialize
. Voor elke bij die gestart is met pollen wordt"Gestart met pollen"
afgedrukt voor het pollen wordt afgeleverd in de korf metDeliverPollen
. Voor elke bij die gestart is zonder pollen, wordt"Gestart zonder pollen"
afgedrukt, gaat de bij op zoek naar pollen viaCollectPollen()
en levert ze het daarna af. -
Schrijf een constructor voor de klasse
Car
die een auto altijd laat starten met snelheid0
. -
Schrijf een bijkomende constructor voor de klasse
Car
die een auto laat starten met een snelheid tussen 0 en 120, maar eenException
gooit als de snelheid buiten deze grenzen ligt. -
Voeg een veld
color
van typestring
toe aanCar
. Schrijf een methodeGetColor
om de kleur op te vragen en een methodeSetColor(string color)
om dit veld in te vullen. Een kleur mag niet opnull
gezet worden. - Schrijf een constructor die alle velden van
Car
invult met bovenstaande beperkingen. - Pas eerdere constructors aan om gebruik te maken van de "master constructor" uit de vorige oefening.
Voeg een (publiek) statisch veld toe aan
Account
, met typeint
en naamInterestRateCharged
en een waarde van 300, wat staat voor 3%. Schrijf dan een instantiemethodeApplyInterest()
die het bedrag op de rekening wijzigt naar het bedrag na toepassing van interest. Zet de initiële waarde van het bedrag op10000
en schrijf een methodeDemonstrateInterest
die tweeAccount
s maakt, demonstreert wat het bedrag voor en na de oproep vanApplyInterest
is, danInterestRateCharged
verdrievoudigt, twee nieuweAccount
s maakt en ook daarDemonstrateInterest
op toepast. Laat ten slotte het bedrag op elke rekening printen naar de console.Voeg een statische methode
AccountAllowed(int income, int age)
toe aanAccount
, die nagaat of iemand wel een rekening mag hebben. Hiervoor moet het inkomen minstens 10000 bedragen en moet de leeftijd minstens 18 bedragen.Zorg ervoor dat elke
Account
vanzelf een uniek rekeningnummer krijgt. De eersteAccount
mag rekeningnummer 1 krijgen, de tweede rekeningnummer 2,... Pas hiervoor toe wat je weet over constructors en over statische velden.