Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Het type int Tekenen met Java operatoren
Klassen en objecten.
Hoofdstuk 2 Hallo, C# !.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 8 Objecten en klassen.
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Consoletoepassing Variabelen Klassen
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.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Hoorcollege 4 Objecten en methoden. Eigen methode toevoegen class Painter : Game { public void HandleInput() { … } protected override void Update(GameTime.
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Hoorcollege 3 Game assets, Invoer verwerken. Tutorlunch GroepTutorStutorZaal UPaul BergervoetBob BestBBG 001 VMarries van de HoefSander VerkuilBBG 731.
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,
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 7 Herhaling Nieuw!. while ( x
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 3 Tekenen en rekenen.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
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.
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Declaratie en toekenningen nEén keer declarareren nMogelijk meerdere toekenningen int x; x = 100; x = 250; x = x + 1; x = 2 * x; int x = 100; x = 100;
Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; if)(expressieopdrachtblok.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Activity Bij het starten van een app:
Imperatief programmeren
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Objecten en geheugen
Reader en Writer leest en schrijft bytes leest string en char
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
vandaag èn vrijdag deadline maandag 12 dec.
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Herhalingen
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Gameprogrammeren: Game Basics
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Voortborduren op eerder gedaan werk
Practicum: schets-editor
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Software Development fundamentals
Transcript van de presentatie:

Hoofdstuk 2 Hallo, C# !

Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd in klassen

en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de “waar was ik gebleven” administratie is best ingewikkeld! Soorten opdrachten nToekennings -opdracht: verander het geheugen nAanroep van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was

Voorbeeld C#-programma één klasse...met één methode...met twee opdrachten accolades begrenzen klasse, resp. methode using System; class Hallo { static void Main ( ) { Console.WriteLine("Hallo!"); Console.ReadLine( ); }

Syntax en semantiek nSyntax: de vorm van het programma compilatie eenheid using; klasse declaratie library naam nSemantiek: wat het programma betekent

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Console-applicatie using System; class Hallo2 { static void Main ( ) { string naam; Console.WriteLine("Wat is je naam?"); naam = Console.ReadLine( ); Console.WriteLine("Hallo, " + naam + "!"); Console.WriteLine("met " + naam.Length + " letters."); } Property van een object

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += toekenning

Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text = "Hallo"; scherm.BackColor = Color.Yellow; scherm.Size = new Size(200,100); using System.Drawing; declaratie en toekenning van een variabele met type Form gebruik van de variabele bij aanroep van Run aanpassen van properties

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie; += property naam variabele

Windows-applicatie class HalloWin2 { static void Main ( ) { } class HalloForm { } Form scherm; scherm = new Form( ); Application.Run(scherm); HalloForm scherm; scherm = new HalloForm( ); Application.Run(scherm); : Form subklasse is een gespecialiseerde versie aanroep van de constructor methode public HalloForm( ) { } definitie van de constructor methode this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100);

Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); Label groet; groet = new Label( ); this.Controls.Add(groet); groet.Text = "Hallo allemaal"; groet.Location = new Point(30,20);

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van opdracht opdracht klasse naam object expressie. methode naam property naam scherm. Size groet. Text naam. Length property naam object expressie methode naam this.Controls. Add ( = klasse naam Color. Yellow Console. WriteLine Application. Run static

Static gewone methodenstatic methoden static Bewerken een objectBewerken geen object Aanroep: object. methode (…) Aanroep: klasse. methode (…) In de body van de definitie: this is dat object In de body van de definitie: this bestaat niet Voorbeeld: Controls.Add(groet);Application.Run(scherm); Mainis altijd static Constructormethoden zijn nooit static

Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); Label groet; groet = new Label( ); this.Controls.Add(groet); groet.Text = "Hallo allemaal"; groet.Location = new Point(30,20);

Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); this.Paint += this.teken; “Event”-property Methode-naam, maar geen aanroep!

Windows-applicatie class HalloForm { } : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100); this.Paint += this.teken; } void teken( { Object o, PaintEventArgs pea ) pea.Graphics. DrawString( ); "Hallo!", 10, 10, Brushes.Blue, new Font("Tahoma", 30)

Hoofdstuk 3 Methoden om te tekenen

Methode-aanroep methode uit de klasse Graphics andere methoden uit Graphics void TekenScherm(object o, PaintEventArgs pea) { Graphics gr; gr = pea.Graphics; gr. DrawString ("Hallo!", new Font("Tahoma", 30), Brushes.Blue, 10, 20 ); gr. FillRectangle (Brushes.Red, 10,20, 50,60 ); gr. DrawLine (Pens.Black, 70,30, 20,20 ); }

Methoden uit Graphics nDrawString nFillRectangle nFillEllipse nDrawImage hallo x y nDrawLine nDrawRectangle nDrawEllipse

Methoden uit Graphics nDrawString nFillRectangle nFillEllipse nDrawImage hallo x y nDrawLine nDrawRectangle nDrawEllipse Pen parameter voor de kleur Brush parameter voor de kleur

Klassen en objecten nKlasse beschrijft mogelijkheden van object umethoden uproperties methode uit de klasse Graphics van object gr Graphics gr; gr = pea.Graphics; gr. DrawLine ( Pens.Red, 10,10, 20,20); string s; s = Console.ReadLine();... s. Length... property uit de klasse string van object s nObjecten ukunnen dingen doen uhebben geheugen

Tekenen gr.FillRectangle( Brushes.Black, 10, 0, 10, 100 ); gr.FillRectangle( Brushes.Black, 50, 0, 10, 100 ); gr.FillRectangle( Brushes.Black, 90, 0, 10, 100 ); gr.DrawRectangle( Pens.Black, 0, 0, 200, 100 ); gr.FillRectangle( Brushes.Black, 0, 40, 200, 10 ); gr.FillRectangle( Brushes.Black, 0, 70, 200, 10 ); gr.FillRectangle( Brushes.Blue, 0, 50, 10, 20 ); gr.FillRectangle( Brushes.Red, 100, 0, 100, 40 ); compositie met blauw en rood (vrij naar Piet Mondriaan)

Tekening aanpassen nAanpassen van de dikte van de balken nAanpassen van de hoogte van het plaatje nAanpassen van de breedte van het plaatje gr.FillRectangle( Brushes.Black, 10, 0, 10, 100 ); gr.FillRectangle( Brushes.Black, 50, 0, 10, 100 ); gr.FillRectangle( Brushes.Black, 90, 0, 10, 100 ); gr.DrawRectangle( Pens.Black, 0, 0, 200, 100 ); gr.FillRectangle( Brushes.Black, 0, 40, 200, 10 ); gr.FillRectangle( Brushes.Black, 0, 70, 200, 10 ); gr.FillRectangle( Brushes.Red, 100, 0, 100, 40 ); gr.FillRectangle( Brushes.Blue, 0, 50, 10, 20 ); erg veel werk...

Variabelen gr.FillRectangle( Brushes.Black, 10, 0, balk, hoogte ); gr.FillRectangle( Brushes.Black, 50, 0, balk, hoogte ); gr.FillRectangle( Brushes.Black, 90, 0, balk, hoogte ); gr.FillRectangle( Brushes.Black, 0, 40, breedte, balk ); gr.FillRectangle( Brushes.Black, 0, 70, breedte, balk ); balk = 10; breedte = 200; hoogte = 100; int balk, breedte, hoogte; gebruik van variabelen toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type type int: geheel getal

Variabelen groet = "Hallo " + naam + "!"; Console.WriteLine(groet); naam = Console.ReadLine(); string naam, groet; gebruik van variabelen toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type type string: tekst

Variabelen groet. Text = "Hallo"; this.Controls. Add (groet); groet = new Label (); Label groet; gebruik van variabelen toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type type Label: opschrift

Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Syntax van declaratie type klasse naam int string declaratie naamtype, =expressieconst ; var

Plaats van een declaratie blok declaratie opdracht {}

Variabelen gr.FillRectangle( Brushes.Black, 10, 0, 10, 100 ); gr.FillRectangle( Brushes.Black, 50, 0, 10, 100 ); gr.FillRectangle( Brushes.Black, 90, 0, 10, 100 ); int balk, breed, hoog; balk=10; breed=200; hoog=100; gr.FillRectangle( Brushes.Black, 0, 40, 200, 10 ); gr.FillRectangle( Brushes.Black, 0, 70, 200, 10 ); gr.FillRectangle( Brushes.Blue, 0, 50, 10, 20 ); gr.FillRectangle( Brushes.Red, 100, 0, 100, 40 );

Variabelen gr.FillRectangle( Brushes.Black, 10, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, 50, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, 90, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, 0, 40, breed, balk ); gr.FillRectangle( Brushes.Black, 0, 70, breed, balk ); gr.FillRectangle( Brushes.Blue, 0, 50, 10, 20 ); gr.FillRectangle( Brushes.Red, 100, 0, 100, 40 ); int balk, breed, hoog; balk=10; breed=200; hoog=100; x1x2x3 y1 y2 int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70;

Variabelen gr.FillRectangle( Brushes.Black, x1, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, x2, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, x3, 0, balk, hoog ); int balk, breed, hoog; balk=10; breed=200; hoog=100; x1x2x3 y1 y2 int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; gr.FillRectangle( Brushes.Black, 0, y1, breed, balk ); gr.FillRectangle( Brushes.Black, 0, y2, breed, balk ); gr.FillRectangle( Brushes.Blue, 0, 50, 10, 20 ); gr.FillRectangle( Brushes.Red, 100, 0, 100, 40 );

Variabelen gr.FillRectangle( Brushes.Black, x1, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, x2, 0, balk, hoog ); gr.FillRectangle( Brushes.Black, x3, 0, balk, hoog ); int balk, breed, hoog; balk=10; breed=200; hoog=100; x1x2x3 y1 y2 int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; gr.FillRectangle( Brushes.Black, 0, y1, breed, balk ); gr.FillRectangle( Brushes.Black, 0, y2, breed, balk ); gr.FillRectangle( Brushes.Blue, 0, y1+balk, x1, y2-y1-balk ); gr.FillRectangle( Brushes.Red, x3+balk, 0, br-(x3+balk), y1 );

nExpressie: stukje programma met een waarde nGebruik van expressies: uRechterkant van een toekennings-opdracht uParameter van een methode Expressies x3 = x2+40 ; gr.FillRectangle(Brushes.Blue, 0, y1+balk, x1, y2-(y1+balk) ) ;

expressie Opbouw van expressies nconstante nvariabele n... operator... n(... ) 5 hoogte x + y (y + 1) + 1 x - expressie

Operatoren n+optellen n-aftrekken n*vermenigvuldigen n/delen n%rest bij deling bij deling van int-waarden: cijfers achter de komma worden afgekapt! 14 / 3 geeft 4 want 14 is 4* % 3 geeft 2

Prioriteit van operatoren nVermenigvuldigen gaat voor optellen nBij gelijke prioriteit: van links naar rechts nWil je ’t anders: zet haakjes * 3 geeft 7 en delen en aftrekken geeft 3 (1+2) * 3 geeft 9

Syntax van expressies expressie getal expressie operator expressie() variabele ”” symbool

Gebruik van expressies in opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Gebruik van expressies in opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=

Gebruik van expressies in opdrachten en expressies opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += expressie constante expressie operator expressie() variabele

Het type van een expressie n98765 n"Hallo" nbreedte n n"Hallo " + naam nnaam.Length n"Hallo " + naam.Length nBrushes.Black int string Brush int string int string type klasse naam int string

Het type van een expressie nBrushes.Black Brush Pen Form Font nPens.Blue nnew Form() nnew Font("Arial",10) Pen nnew Pen(Brushes.Red, 5) Brush nnew HatchBrush(HatchStyle.ZigZag, Color.Blue, Color.Red) Color nnew Color(255, 128, 0) Color.FromArgb

Kleuren (255,0,0) (0,255,0) (255,255,0) (0,0,255) (0,255,255) (255,0,255) (255,255,255) (0,0,0) Color. FromArgb(...)

Mengkleuren nColor.FromArgb(255, 0, 0) nColor.FromArgb(255, 255, 0) nColor.FromArgb(255, 64, 0) nColor.FromArgb(255, 128, 0) nColor.FromArgb(255, 192, 0)

-syntax expressie getal expressie operator expressie() variabele ”” symbool object expressie (), new klasse naam property naam this klasse naam methode naam.

Programma nasd using System.Windows.Forms; using System.Drawing; class Mondriaan : Form { Mondriaan() { this.Text = "Mondriaan"; this.BackColor = Color.White; this.ClientSize = new Size(200, 100); this.Paint += this.tekenScherm; } void tekenScherm(object obj, PaintEventArgs pea) { int breedte, hoogte, balk, x1, x2, x3, y1, y2; breedte = pea.ClipRectangle.Width; hoogte = pea.ClipRectangle.Height; x1 = 10; x2 = 50; x3 = 90; y1 = 40; y2 = 70; balk = 10; Graphics gr = pea.Graphics; gr.FillRectangle(Brushes.Black, x1, 0, balk, hoogte); gr.FillRectangle(Brushes.Black, x2, 0, balk, hoogte); gr.FillRectangle(Brushes.Black, x3, 0, balk, hoogte); gr.FillRectangle(Brushes.Black, 0, y1, breedte,balk); gr.FillRectangle(Brushes.Black, 0, y2, breedte,balk); gr.FillRectangle(Brushes.Blue, 0, y1 + balk, x1, y2 - (y1 + balk)); gr.FillRectangle(Brushes.Red, x3+balk, 0, breedte-(x3+balk), y1); } static void Main() { Application.Run( new Mondriaan()); }

Programma nasd using System.Windows.Forms; using System.Drawing; class Mondriaan : Form { Mondriaan() { this.Text = "Mondriaan"; this.BackColor = Color.White; this.ClientSize = new Size(200, 100); this.Paint += this.tekenScherm; } void tekenScherm(object obj, PaintEventArgs pea) { int breedte, hoogte, balk, x1, x2, x3, y1, y2; breedte = pea.ClipRectangle.Width; hoogte = pea.ClipRectangle.Height; x1 = 10; x2 = 50; x3 = 90; y1 = 40; y2 = 70; balk = 10; Graphics gr = pea.Graphics; gr.FillRectangle(Brushes.Black, x1, 0, balk, hoogte); gr.FillRectangle(Brushes.Black, x2, 0, balk, hoogte); gr.FillRectangle(Brushes.Black, x3, 0, balk, hoogte); gr.FillRectangle(Brushes.Black, 0, y1, breedte,balk); gr.FillRectangle(Brushes.Black, 0, y2, breedte,balk); gr.FillRectangle(Brushes.Blue, 0, y1 + balk, x1, y2 - (y1 + balk)); gr.FillRectangle(Brushes.Red, x3+balk, 0, breedte-(x3+balk), y1); } static void Main() { Application.Run( new Mondriaan()); } /* Dit programma tekent een Mondriaan-like "compositie met rood en blauw” */ // posities van de lijnen // zwarte balken // gekleurde vakken met commentaar

Commentaar nTekst voor de menselijke lezer, genegeerd door de compiler nTwee vormen: uvan /* tot */ uvan // tot einde regel

Hoofdstuk 3.6 Methode- declaraties

Nieuwe methoden nMethode: groepje opdrachten met een naam Aanroep van een methode voert opdrachten uit in de body daarvan private void tekenHuis(…) { …. DrawRectangle (…); …. DrawLine (…); …. DrawLine (…); } public void TekenScherm (object o, PaintEventArgs pea) { …. tekenHuis (…); …. tekenHuis (…); …. tekenHuis (…); }

Parameters …. DrawRectangle (…); …. DrawLine (…); …. DrawLine (…); } public void TekenScherm (object o, PaintEventArgs pea) { …. tekenHuis (…); …. tekenHuis (…); …. tekenHuis (…); } private void tekenHuis (…) { gr (Graphics gr, … ) parameter declareren (pea.Graphics, …); en bij aanroep meegeven

Het object this gr. DrawRectangle (…);gr. DrawLine (…); } …. tekenHuis (pea.Graphics, …); …. tekenHuis (pea.Graphics, …); …. tekenHuis (pea.Graphics, …); } private void tekenHuis (Graphics gr, …) { this this this this: het object dat TekenScherm ook al onder handen heeft class Huizen : Form { } public void TekenScherm (object o, PaintEventArgs pea) {

Meer parameters this. tekenHuis (pea.Graphics, …); this. tekenHuis (pea.Graphics, …); this. tekenHuis (pea.Graphics, …); } public void TekenScherm (object o, PaintEventArgs pea) { teken driemaal een net iets ander huis 20, 100, 40); 70, 100, 40); 120, 100, 60); nog meer parameters!

Meer parameters gr.DrawRect (pen,… ); gr.DrawLine (pen,… ); gr.DrawLine (pen,… ); } x, y-br,br, br int tx, ty; tx = x + br/2; ty = y – br – br/2; x, y-br, tx, ty tx, ty, x+br, y-br private void tekenHuis (Graphics gr, … ) { int x, int y, int br) this. tekenHuis (pea.Graphics, …); this. tekenHuis (pea.Graphics, …); this. tekenHuis (pea.Graphics, …); } public void TekenScherm (object o, PaintEventArgs pea) { (x,y)br (tx,ty) 20, 100, 40); 70, 100, 40); 120, 100, 60);

Huizen... int afdak = breedte / 6; Pen pen = new Pen(Color.DarkRed, 3); Brush br = new HatchBrush(HatchStyle.HorizontalBrick, Color.Silver, Color.Red );

Flexibiliteit nHoe meer parameters, des te flexibeler de methode (x,y) br h dakh private void tekenHuis (Graphics gr, int x, int y, int br, int h, int dakh, Brush kl, Brush dakKl, … ) { en des te lastiger aan te roepen...

Flexibiliteit Veel parameters: nNu lastig om te programmeren nIn de toekomst gemakkelijk uit te breiden Weinig parameters: n Nu gemakkelijk om te programmeren n In de toekomst lastig te onderhouden

Wat gaan we doen? college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt wo 15-17vr 13-15< werkcoll nNu: Prakticum BBG 115 – 001 – 201 – 175 – 112 – 103 nWoensdag: werkcoll, hoorcoll, prakt S/T/UV/W