De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.

Verwante presentaties


Presentatie over: "Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text."— Transcript van de presentatie:

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


Download ppt "Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text."

Verwante presentaties


Ads door Google