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 geenHivewordt meegegeven, moet deze methode eenExceptiongooien. - Schrijf een objectmethode
HasPollen()met return typebooldie 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
Cardie een auto altijd laat starten met snelheid0. -
Schrijf een bijkomende constructor voor de klasse
Cardie een auto laat starten met een snelheid tussen 0 en 120, maar eenExceptiongooit als de snelheid buiten deze grenzen ligt. -
Voeg een veld
colorvan typestringtoe aanCar. Schrijf een methodeGetColorom de kleur op te vragen en een methodeSetColor(string color)om dit veld in te vullen. Een kleur mag niet opnullgezet worden. - Schrijf een constructor die alle velden van
Carinvult 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 typeinten naamInterestRateChargeden 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 op10000en schrijf een methodeDemonstrateInterestdie tweeAccounts maakt, demonstreert wat het bedrag voor en na de oproep vanApplyInterestis, danInterestRateChargedverdrievoudigt, twee nieuweAccounts maakt en ook daarDemonstrateInterestop 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
Accountvanzelf een uniek rekeningnummer krijgt. De eersteAccountmag rekeningnummer 1 krijgen, de tweede rekeningnummer 2,... Pas hiervoor toe wat je weet over constructors en over statische velden.