200 likes | 384 Views
C# dataverwerking (H3). Consoletoepassing Variabelen Klassen. Consoletoepassingen. RAD was makkie; nog geen letter geprogrammeerd! Nu echt aan het werk: Geen GUI Opdrachtprompt Voor taken op de achtergrond Toch interactie mogelijk via console Sjabloon in C# voor dit soort toepassingen
E N D
C# dataverwerking (H3) Consoletoepassing Variabelen Klassen
Consoletoepassingen • RAD was makkie; nog geen letter geprogrammeerd! Nu echt aan het werk: • Geen GUI • Opdrachtprompt • Voor taken op de achtergrond • Toch interactie mogelijk via console • Sjabloon in C# voor dit soort toepassingen • Starten in console via pad ..\bin\release
Voorbeeld: HelloWorld using System; Class HelloWorld { staticvoidMain() { Console.WriteLine(“Hallo Wereld!”); } }
Datatypen en variabelen • Variabelen zijn opslagplaatsen voor waarden • Te declareren voor gebruik • In klasse (instantievariabelen) • In methode • Datatypen (overzicht blz. 75): • bool • char • byte • short • int • long • float • double
Strings • Alles tussen “ en “ • Console.WriteLine(“dit is dan zo’n string”); • Escape sequences \ (zie blz. 78) • Concatenatie aan elkaar knopen van strings • “string deel 1 “ + “string deel 2” • Maar ook: “getal wordt “ + 1233 • Vergelijken strings: == of != • String is een klasse; dus een verzameling methodes is beschikbaar (zie blz. 82)
Typeconversie • Zie blz. 85 • Convert klasse • Getal naar string: • str = getal.ToString; • String naar getal: • getal = Convert.ToInt(str) • Casting = expliciet typeconversie: • intgetal = (int) dblgetal
Operatoren (blz. 93) • +, -, *, / • % • ++, -- • ! • ==, != • <, <=, >, >= • && • ||
Opdracht • Bekijk de code van “hoogteberekening” op blz. 95. • Schrijf op gelijke wijze een consoletoepassing die de BMI uitrekent. • Nu je toch bezig bent: maak ook eens de BMI calculator met een grafische smoel; met RAD dus, m.b.v. een Windows Form. Denk aan titel, invoer + labels voor gewicht en lengte, uitvoer + label voor uitkomst, button met event en verklarende tekst bij de uitkomst.
Objecten en klassen • Vergelijk “Klassiek programmeren” met OOP • Voorbeeld: applicatie medewerkerbeheer • Info over medewerkers dient te worden vastgelegd (voornaam, achternaam, salaris, etc.) • Deze info dient te kunnen worden getoond • Salaris kan ook gemuteerd (verhoogd) worden • Hoe zou je dit “klassiek” (bijv. in PHP) oplossen?
Principes van OOP • Probleem verdelen in geschikte objecten • Logische zaken bij elkaar houden (en afschermen van de rest van de wereld! Alleen toegang middels methoden!): • Kenmerken (attributen, eigenschappen) • Gedragingen (methoden, acties) • In ons voorbeeld zou medewerker een prima kandidaat zijn voor een te ontwerpen klasse • Waarbij klasse de mal is waarmee objecten kunnen worden gegenereerd (medewerkers dus in dit geval)
Klasse declareren (1) class Medewerker { // instantie variabelen: alle (nog te maken) // methoden van deze klasse kunnen deze // benaderen string achternaam; string voornaam; int salaris; //…methoden weggelaten }
Klasse declareren (2) class Medewerker { // … instantievariabelen weggelaten // Constructor methode: public Medewerker(string achternaam, string voornaam, int salaris) { // …constructor body weggelaten } }
Klasse declareren (3) class Medewerker { // … instantievariabelen weggelaten // … Constructor weggelaten // Methode om gegevens op scherm te zetten: public voidGegevensUitvoer() { Console.WriteLine(); Console.WriteLine(“Naam : “ + achternaam); Console.WriteLine(“Voornaam : “ + voornaam); Console.WriteLine(“Salaris : “ + salaris + “ Euro”); } }
Klasse declareren (4) class Medewerker { // … instantievariabelen weggelaten // … Constructor weggelaten // Methode om salaris te verhogen: public voidSalarisOpslag(int opslag) { this.salaris += opslag; } }
Methode declaratie • <access modifier> <returntype> Methodenaam(parameters) • public int SalarisOpvraag() • <access modifier> void Methodenaam(parameters) • public voidSalarisOpslag(int opslag)
Programmeren met klassen • Vanuit je hoofdprogramma (Program.cs) • Verplichte Main() methode • Instantiëren van objecten uit klassen
Medewerkerbeheer programma namespaceMedewerkerbeheer { class Program { staticvoidMain(string[] args) { //nieuwe medewerker aanmaken vanuit klasse Medewerker bill = new Medewerker(“Gates”, “Bill”, 3000); // medewerker tonen op scherm bill.GegegevensUitvoer(); // medewerker bill salarisverhoging geven bill.SalarisOpslag(500);
Instantie maken Medewerker bill = new Medewerker(“x”, “y”, 9); • Variabele met de naam bill wordt gemaakt • Is van het type Medewerker • D.w.z. dat klasse Medewerker wordt aangeroepen • Om precies te zijn: de constructor van die klasse • die constructor verwacht 3 parameters • new is een operator om objecten te creëren
Toegang tot instantie bill.SalarisOpslag(1000); • objectnaam.methodenaam(parameters); • Hier wordt dus object bill aangesproken, dat een instantie is van klasse Medewerker • De instantievariabelen hebben de waarden “Gates”, “Bill”, 3500
Opdracht • Lees hoofdstuk 3 boek C# • Maak de oefeningen, vragen en antwoorden • Extra: • Zie http://sharepoint.serviceatschool.nl Applicatie Ontwikkelaar Klas S2a Kerntaken ASPdotNET en Csharp Csharp – praktijkcase 1 – Soundsharp Syntax Module • http://sharepoint.serviceatschool.nl/Applicatieontwikkelaars%20s2a/01%20-%20Kerntaken/ASPdotNET%20en%20Csharp/Csharp%20-%20Praktijkcase%201%20-%20Soundsharp%20Syntax%20module.rar