Windows-applicatie using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) { Form scherm; declaratie en toekenning van een variabele met type Form scherm = new Form( ); scherm.text = "Hallo"; scherm.backcolor = Color.Yellow; scherm.size = new Size(200,100); Application.Run(scherm); aanpassen van properties gebruik van de variabele bij aanroep van Run
Windows-applicatie class HalloWin2 { static void Main ( ) { HalloForm scherm; scherm; scherm = new HalloForm( ); ); Application.Run(scherm); class HalloForm : Form { public HalloForm( ) { aanroep van de constructor methode subklasse is een gespecialiseerde versie this.text = "Hallo"; this.backcolor = Color.Yellow; this.size = new Size(200,100); definitie van de constructor methode
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( ); groet.text = "Hallo allemaal"; groet.location = new Point(30,20); this.controls.add(groet);
Syntax van opdracht opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ;
Syntax van opdracht opdracht klasse naam object expressie. methode naam property naam ( = static object expressie klasse naam property naam scherm. Size groet. Text naam. Length Color. Yellow methode naam this.controls. Add Console Application. WriteLine. Run
Static gewone methoden Bewerken een object Aanroep: object. methode ( ) In de body van de definitie: this is dat object Voorbeeld: Controls.Add(groet); Constructormethoden zijn nooit static static methoden Bewerken geen object Aanroep: klasse. methode ( ) In de body van de definitie: this bestaat niet Voorbeeld: Application.Run(scherm); Main is altijd static
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!", new Font("Tahoma", 30), Brushes.Blue, 10, 10 );
Methode-aanroep 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 de klasse Graphics
Expressies Expressie: stukje programma met een waarde Gebruik van expressies: Rechterkant van een toekennings-opdracht x3 = x2+40 ; Parameter van een methode gr.fillrectangle(brushes.blue, 0, y1+balk, x1, y2-(y1+balk) ) ;
Syntax van expressies expressie getal symbool variabele expressie operator expressie ( expressie )
expressie -syntax getal symbool variabele expressie operator expressie ( expressie ) new klasse naam klasse naam methode naam ( expressie ) object expressie. property naam, this
Hoofdstuk 3.6 Methodedefinities
Nieuwe methoden Methode: 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 private void tekenhuis ( ) (Graphics gr, ) { gr. DrawRectangle ( ); gr. DrawLine ( ); gr. DrawLine ( ); public void TekenScherm (object o, PaintEventArgs pea) {. tekenhuis (pea.graphics, ( ); );. tekenhuis (pea.graphics, ( ); );. tekenhuis (pea.graphics, ( ); ); parameter declareren en bij aanroep meegeven
Het object this class Huizen : Form { private void tekenhuis (Graphics gr, ) { gr. DrawRectangle ( ); gr. DrawLine ( ); gr. DrawLine ( ); public void TekenScherm (object o, PaintEventArgs pea) { this. tekenhuis (pea.graphics, ); this. tekenhuis (pea.graphics, ); this. tekenhuis (pea.graphics, ); this: het object dat TekenScherm ook al onder handen heeft
Meer parameters teken driemaal een net iets ander huis nog meer parameters! public void TekenScherm (object o, PaintEventArgs pea) { this. tekenhuis (pea.graphics, ); 20, 100, 40); this. tekenhuis (pea.graphics, ); 70, 100, 40); this. tekenhuis (pea.graphics, ); 120, 100, 60);
Meer parameters private void tekenhuis (Graphics gr, int ) x, int y, int br) { int tx, ty; tx = x + br/2; ty = y br br/2; (tx,ty) gr.drawrect (pen, x, y-br, br, br ); gr.drawline (pen, x, y-br, tx, ty ); gr.drawline (pen, tx, ty, x+br, y-br ); (x,y) br public void TekenScherm (object o, PaintEventArgs pea) { this. tekenhuis (pea.graphics, ); 20, 100, 40); this. tekenhuis (pea.graphics, ); 70, 100, 40); this. tekenhuis (pea.graphics, ); 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 );
Communicatie met methoden Parameters : aanroeper geeft waarde door aan de methode Methode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie
Methoden met een resultaat type van het resultaat private double kwadraat (double x) { return x*x ; waarde van het resultaat in speciale return-opdracht
Publieksvraag Schrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("hoera!") "Hoera!Hoera!Hoera!" private string driewerf (string x) { return x+x+x;
Aanroep van methoden Aanroep van void-methode geldt als opdracht zonder resultaat g.drawline(pen, 10,10, 20,20) ; Aanroep van methode met resultaat geldt als expressie a = this.kwadraat (5) ; g.drawline(pen, this.kwadraat (5), 10, 25, 50); this.kwadraat (5) + 1
Return is laatste opdracht Parameters krijgen hun waarde bij de aanroep private double gemiddelde (double a, double b, double c) { double totaal; totaal = a + b + c ; return totaal / 3; Lokale variabelen krijgen hun waarde in een toekenning
Methodes die elkaar aanroepen class CirkelCalc : Form { private double kwadraat (double x) { return x*x ; private double oppervlak (double r) { return Math.PI * this.kwadraat(r); public void Bereken (...) { uitvoer.text = this.oppervlak(25).tostring();
Practicum groep di 17-19 vr 15-17 begeleider 1 103 175 Victor 2 115 201 Maaike 3 106 201 Tim 4 175 109 Suzan 5 165 001 Susan 6 165 001 Jos