120 likes | 254 Views
C#. Modulair werken en programmasturing (H4). De flow van een C# prog. Uitvoering begint met methode Main () De statements in deze methode worden van boven naar beneden doorlopen Zit daar een methode-aanroep bij, dan wordt daar een uitstap naar gemaakt
E N D
C# Modulair werken en programmasturing (H4)
De flow van een C# prog • Uitvoering begint met methode Main() • De statements in deze methode worden van boven naar beneden doorlopen • Zit daar een methode-aanroep bij, dan wordt daar een uitstap naar gemaakt • Vervolgens keert besturing terug naar volgende regel in Main() • Het programma eindigt met de laatste opdracht in Main()
Modulair programmeren • Regelmatig terugkerende taken in een programma als module programmeren • Voordelen: • Beter leesbaar • Gemakkelijker te onderhouden • Minder foutgevoelig • Beter te debuggen
Maar dat kan beter … • Maak methode (module) zo algemeen mogelijk • Beperk de methode strikt tot de uit te voeren taak (dus bijvoorbeeld geen write van het resultaat, maar alleen de berekening!) • Gebruik parameters als variabele argumenten
Klasse als verzameling methoden • RenteOpRenteBerekenen() zou je als methode kunnen opnemen in een verzamelklasse met nog meer financiële methoden (vgl. functies in PHP) • Hij hoort eigenlijk dus niet thuis in Program.csvan vorige voorbeeld • Als hij niet meer in Program.csis opgenomen, maar in aparte klasse, dan wordt de aanroep ook iets anders: Verzamelklasse.methodenaam()
Klasse als object-generator • RenteOpRenteBerekenen() is in bovenstaand voorbeeld een losse methode, opgenomen in een verzamelklasse • Behalve onderdeel van klassenverzameling, kan een methode ook onderdeel zijn van een klasse die objecten genereert • Bijvoorbeeld: • Medewerker Piet = new Medewerker(naam, sal);
Voorbeeld: spaarbankboekje public class Spaarbankboekje { double kapitaal, rente; public Spaarbankboekje(double kapitaal, double rente) { this.kapitaal= kapitaal; this.rente = rente; } public void opname(double bedrag) { kapitaal -= bedrag; } public double RenteOpRenteBerekenen(double looptijd) { return kapitaal * Math.pow((1 + rente / 100), looptijd); } }
Verwerking Spaarbankboekje Class Program { staticvoidMain(string[] args) { string invoer; double kapitaal, rente; int looptijd; //[…regels weggelaten…] Spaarbankboekje ErikSpaar = new Spaarbankboekje(kapitaal, rente); //[…regels weggelaten…] Console.WriteLine( “rente op rente: “ + ErikSpaar.RenteOpRenteBerekenen(looptijd)); } }
To do (zie studiewijzer): • Lezen hoofdstuk 4 – blz. 122 t/m 127 (deeltaken in methoden en klassen) • Maken opdracht hoofdstuk 4 – blz. 127 (klassen als methodeverzameling) • Lezen hoofdstuk 4 – blz. 128 en 129 (klassen als methodeverzameling) • Maken hoofdstuk 4 – blz. 129 t/m 131 (klassen als objectfabrieken) • Lezen hoofdstuk 4 – blz. 132 (komma of punt) • Maken hoofdstuk 4 – blz. 133 t/m 137 (eigen bibliotheken) • Lezen hoofdstuk 4 – blz. 137 t/m 149 (controlestructuren: if-else, booleaanse vergelijkingen, switch, for, while, foreach, loops en arrays) Maken extra opdracht E4.1(uit studiewijzer) • Lezen hoofdstuk 4 – blz. 150 t/m 156 (foutafhandeling, try-catch) • Maken oefeningen 3 t/m 9 – blz. 158/159