Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdEmmanuel Veenstra Laatst gewijzigd meer dan 9 jaar geleden
1
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
2
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);
3
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);
4
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!
5
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)
6
Methode-aanroep methoden uit de klasse 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 ); }
7
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
8
-syntax expressie getal expressie operator expressie() variabele ”” symbool object expressie (), new klasse naam property naam this klasse naam methode naam.
9
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 (…); }
10
Methode met 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);
11
Publieksvraag nSchrijf een methode tekenCirkel die je zo kunt aanroepen: public void TekenScherm (object o, PEA pea) { } this.tekenCirkel(pea.Graphics, Brushes.Black, 150, 100, 50); midden straal 150 100 50 private void tekenCirkel { } gr. FillEllipse(br, cx–r, cy–r, 2*r, 2*r ); (Graphics g, Brush br, int cx, int cy, int r)
12
Hoofdstuk 4 Objecten en methoden
13
Variabelen nVariabele: geheugenplaats met een naam int x, y; nDeclaratie: aangifte van het type van de variabele nToekenningsopdracht: variabele krijgt waarde x = 20; x y 20
14
Toekenningsopdrachten y = x + 5 ; nExpressie aan de rechterkant mag andere variabelen gebruiken nVorige waarde gaat verloren x = y * 2 ; x y 20 int x, y; x = 20 ; y = y + 1 ; 25 50 26
15
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; Declaratie en eerste toekenning
16
x Type van variabelen x = 10 ; d = 3.141592653 ; nint geheel getal ndouble benadering van reëel getal d = 10 ; d int x; double d; 3.141592653 x = x / 3 ; d = d / 3 ; 10.03.3333333333 103
17
Const declaratie double pi= 3.1415926535897938; void PrintOppervlak ( double r ) { Console.WriteLine( Pi * r * r ); } const double Pi= 3.1415926535897938; Pi = 4.0; Latere toekenningen verboden
18
Standaardtypes sbyte short int long float double decimal byte ushort uint ulong ± 2 miljard ± 10 18 ± 32767 ± 127 0..10 19 0..65535 0..255 0..4 miljard 7 cijfers, afgerond, ≤10 38 15 cijfers, afgerond, ≤10 300 28 cijfers, exact, ≤10 28 ngehele getallen nmet een decimale punt 1 byte 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes 16 bytes 2 8 -1 2 16 -1 2 32 -1 2 64 -1
19
Constanten ngeheel getal (kleinst passende) nmet een decimale punt nstring 0137–25 0.5–273.156.02E231E3 "Hallo!""A""A""""een \"citaat\"""\n""\\" 0x1A0xFF 3E–11 60200000000000000000000010000.00000000003 26255 hexadecimaal
20
Typering van operatoren nBeide argumenten geheel resultaatwaarde geheel 2 + 5 3 * 4 5 / 2 0.5 * 7 10 / 3.0 1.5 * 2.5 nMinstens één floating resultaatwaarde floating “in” + “fo” “€” + bedrag nbij + operator ook: Minstens één string resultaatwaarde string
21
Objecten nObject: groepje variabelen dat bij elkaar hoort 255 r g 0 b 100 w 20 h 3 aantal 199.95 prijs h allo!
22
Objecten nOm een object te gebruiken, hoef je niet te weten uit welke variabelen het object bestaat nJe hoeft alleen te weten uwelke methoden er zijn uwelke properties er zijn "vraag niet hoe het kan... " "maar profiteer ervan! "
23
Methoden bewerken een object gr. DrawLine ( pen, 10, 10, 30, 30) ; scherm.Controls. Add ( new Label() ); methode gebruikt het object methode verandert het object blijvend Console. WriteLine( "Hallo",... ); static methode heeft geen object onderhanden
24
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken
25
Objecten kunnen veranderen Rectangle r; r = new Rectangle(10,5,10,20); gr.FillRectangle(Brushes.Blue, r); r.Offset(0,30); r.Inflate(5,0); gr.FillRectangle(Brushes.Red, r);
26
Immutable objecten nIn sommige klassen is er geen enkele methode die objecten kan veranderen stringColor nEenmaal gemaakt, blijft de inhoud van het object hetzelfde
27
Objecten kopiëren Rectangle r; r.Inflate(5,0); 0 0 0 0 y x h w r r.Offset(0,30); r = new Rectangle(10,5,10,20); gr.FillRectangle(Brushes.Blue, r); 10 5 20 y x h w r 10 35 10 20 y x h w r gr.FillRectangle(Brushes.Red, r); 5 30 20 30 y x h w r Rectangle a; a = r; 0 0 0 0 y x h w a 5 30 20 30 y x h w a a.Offset(0,100); 5 130 20 30 y x h w a
28
Grote objecten kopiëren? Bitmap b; b = new Bitmap("t.jpg"); Bitmap c; c = b; 104 h wb 4 h wc zonde van de ruimte!
29
Object-verwijzingen Bitmap b; Bitmap c; c = b; 104 h w b new Bitmap("t.jpg");b = c
30
Values versus References Rectangle r; r = new Rectangle(1,2,3,4); 1 2 3 4 y x h w r 104 h w b Bitmap b; b = new Bitmap("t.jpg"); class Bitmap struct Rectangle
31
References naar mutable objecten bc 200 80 h w pixels Bitmap b, c; b = new Bitmap("t.jpg"); c = b; gr.DrawImage(b, 10, 10); gr.DrawImage(c, 220,10); c.Rotate(...);
32
References naar mutable objecten Bitmap b, c; b = new Bitmap("t.jpg"); c = b; gr.DrawImage(b, 10, 10); gr.DrawImage(c, 220,10); c.Rotate(...); bc 80 200 h w pixels
33
Type-controle nCompiler controleert type van toe te kennen waardes int x, y ; double d; Color c; x = 3; x = y; d = 3.14; c = Color.Red; x = 3.14; x = “hoi”; d = c; c = 3;
34
Type-conversie getallen int x, y ; double c, d; x = 5; d = 3.14; d = 7; c = x; x = (int) d; y = (int) (c/2); ntype klopt nint-waarde past ook in een double-variabele ndouble past afgekapt in int, mits programmeur accoord
35
Type-controle parameters nCompiler controleert of parameters van methoden het goede type hebben g.DrawString ( ”hallo”, br, ft, 10, 20 ); x = 100; y = 10; waarde = 37; g.DrawString ( waarde, br, ft, 0.3 * x, y ); ”” + (int)( ) String int Brush Font
36
Hoofdstuk 5 Interactie
37
Controls Form Label Button Label TextBox
38
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 public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100);
39
CirkelCalc class Program { static void Main ( ) { } class Scherm { } Form scherm; scherm = new Form( ); Application.Run(scherm);Application.Run(new Scherm()); : Form public Scherm( ) { } this.Text = "CirkelCalc"; this.ClientSize = new Size(240, 60); zonder rand en titelbalk
40
CirkelCalc constructor class Scherm : Form { public Scherm( ) { this.Text = "CirkelCalc"; this.ClientSize = new Size(240, 60); } } Label tekst, uitvoer; Button knop; TextBox invoer; tekst = new Label(); knop = new Button(); invoer=new Label(); uitvoer = new TextBox(); this.Controls. Add(tekst); tekst.Location = new Point(65,10); tekst.Size = new Size(35,20); tekst.Text = "straal: "; // enzovoorts... knop.Click += this.bereken; // enzovoorts... Event-propertyafhandelingsmethode
41
CirkelCalc klik-afhandeling class Scherm : Form { public void bereken(object o, EventArgs ea) { } } invoer.Textdouble.Parse()double straal =; double opp = this.oppervlakte(straal); uitvoer.Text = opp.ToString(); methode met een resultaat private double oppervlakte(double x) { } return Math.PI * x * x; type van het resultaat waarde van het resultaat "leeg" resultaat
42
CirkelCalc class Scherm : Form { } public Scherm( ) { private double oppervlakte(...) { } } } Button knop; TextBox invoer; Label tekst, uitvoer;...new...Size...Add... knop.Click = this.bereken;...Parse(invoer.Text); uitvoer.Text =......this.oppervlakte(...)... return... gedeclareerd in een andere methode! public void bereken(...) {
43
CirkelCalc class Scherm : Form { } private double oppervlakte(...) { } }...Parse(invoer.Text); uitvoer.Text =.........this.oppervlakte(...)... return... gedeclareerd los in de klasse public void bereken(...) { TextBox invoer; Label uitvoer; public Scherm( ) { Button knop; TextBox invoer; Label tekst, uitvoer;...new...Size...Add... knop.Click = this.bereken; } mag je gebruiken in alle methodes heeft de variabelen niet nodig static Scherm
44
Communicatie met methoden nParameters : aanroeper geeft waarde door aan de methode nMethode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie
45
Methoden met een resultaat private double kwadraat (double x) { return x*x ; } type van het resultaat waarde van het resultaat in speciale return-opdracht
46
Publieksvraag nSchrijf 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;
47
nAanroep van void-methode geldt als opdracht Aanroep van methoden g.DrawLine(pen, 10,10, 20,20) ; a = this.kwadraat (5) ; g.DrawLine(pen, this.kwadraat (5), 10, 25, 50); zonder resultaat nAanroep van methode met resultaat geldt als expressie … this.kwadraat (5) + 1 …
48
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 variabele krijgen hun waarde in een toekenning
49
Methodes die elkaar aanroepen 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(); } class CirkelCalc : Form { }
50
Grafische User Interface (GUI) n8 declaraties n8 keer new... n8 keer this.Controls.Add(...) n42 property-toekenningen TrackBar Button Label Panel n8 declaraties n8 keer new... n8 keer this.Controls.Add(...) n42 property-toekenningen
51
Visual Studio Design Mode
52
Code gegenereerd door Visual Studio Designer namespace Mixer { static class Program { static void Main() { Application.Run (new Mixer()); } namespace Mixer { partial class Mixer : Form { // constructor Mixer() { this.InitializeComponent(); } // event-handlers void klik(object o, EventArgs ea) { } namespace Mixer { partial class Mixer { #region generated code void InitializeComponent() { this.b = new Button(); b.Text = " zwart " ; b.Click += this.klik; this.Controls.Add(this.b); } #endregion private Button b; } Program.csMixer.csMixer.Designer.cs
53
-syntax expressie getal expressie operator expressie() variabele ”” symbool object expressie (), new klasse naam property naam this klasse naam methode naam.
54
Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie;
55
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. 3 17-19 15-17wo 15-17vr 13-15<24 11-1313-15 werkcoll nNu: Practicum BBG 106 – 103 – 115 – 175 – 112 – 109 nVrijdag: college in Ruppert-blauw 123456 S/T/UV/W
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.