Consoletoepassing Variabelen Klassen

Slides:



Advertisements
Verwante presentaties
Inleiding programmeren in C++ Life Science & Technology 26 januari Universiteit Leiden.
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Van domeinklasse tot implementatie
Het ontwerpen van een klasse
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Het type int Tekenen met Java operatoren
Klassen en objecten.
Hoofdstuk 4: Klassen definiëren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
Hoofdstuk 2 Hallo, C# !.
Numerieke Natuurkunde
Hoofdstuk 8 Objecten en klassen.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Algoritmiek Object-georiënteerd Programmeren
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
Hoofdstuk 3 Methoden om te tekenen.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Welkom! maandag 16 November 2015 Les B-2.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
GUI & classes Een Gui in een class steken en het object gebruiken.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Objectgeoriënteerd Programmeren (2)
Aanroep van een methode voert opdrachten uit in de body daarvan
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Object georiënteerd programmeren
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Tinpro015b-les4 Klassen.
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Software Development fundamentals
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

Consoletoepassing Variabelen Klassen 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 { static void Main() 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 void GegevensUitvoer() 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 void SalarisOpslag(int opslag) this.salaris += opslag; }

Methode declaratie <access modifier> <returntype> Methodenaam(parameters) public int SalarisOpvraag() <access modifier> void Methodenaam(parameters) public void SalarisOpslag(int opslag)

Programmeren met klassen Vanuit je hoofdprogramma (Program.cs) Verplichte Main() methode Instantiëren van objecten uit klassen

Medewerkerbeheer programma namespace Medewerkerbeheer { class Program static void Main(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