De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 8 Objecten en klassen. Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen.

Verwante presentaties


Presentatie over: "Hoofdstuk 8 Objecten en klassen. Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen."— Transcript van de presentatie:

1 Hoofdstuk 8 Objecten en klassen

2 Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken

3 Klasse-definitie nOpsomming van methoden ieder bestaand uit opdrachten nBeschrijving van objecten door declaraties van variabelen bewerken class Teller : Form {... klik(...) { } } Teller() { }... teken(...) { } int t; Paint += teken; MouseClick+=klik; g.DrawString(t...); t = t+1; this.Invalidate(); t = 0;...

4 x Declaratie Declaratie reserveert geheugenruimte nVoor een object-verwijzing int x; x = 5; 5 b zoals be- schreven in klasse Button nVoor een object-waarde Button b; b = new Button(); Size s; s = new Size(10,20); h0 w zoals be- schreven in struct Size nVoor een primitieve waarde s

5 Creatie van nieuwe objecten nObjecten met als type een library-klasse Button b; b = new Button( ); type van het gewenste object nObjecten met als type een zelfgemaakte klasse CirkelGroei cg; cg = new CirkelGroei( );

6 Creatie van objecten nOpbouw van object is gespecificeerd in de klasse class CirkelGroei { int straal; Button kleiner, groter; // methoden... : Form clientsize text paint controls kleinergroterstraal } zelf gedeclareerd geërfd cg

7 0 null 0 clientsize text paint null controls 0 null kleiner null groterstraal this CirkelGroei( ) { } Constructor // roept automatisch // constructor van // Form aan

8 500 clientsize text paint controls 0 null kleiner null groterstraal this CirkelGroei( ) { } Constructor // roept automatisch // constructor van // Form aan this.straal = 100; 100 this.ClientSize = new Size(300,300); 300

9 500 clientsize text paint controls 0 null kleiner null groterstraal this CirkelGroei( ) { } Constructor … this.Text = "CirkelGroei";

10 500 clientsize text paint controls 0 null kleiner null groterstraal this CirkelGroei( ) { } Constructor … this.Text = "CirkelGroei"; CirkelGroei this.Paint += this.teken; teken() {…}...new Button() location text click

11 500 clientsize text paint controls 0 kleiner null groterstraal this CirkelGroei( ) { } Constructor … CirkelGroei teken() {…} this.kleiner = new Button(); 0 0 location text click this.groter = new Button();

12 500 clientsize text paint controls 0 kleinergroterstraal this CirkelGroei( ) { } Constructor … CirkelGroei teken() {…} this.kleiner = new Button(); 0 0 location text click this.groter = new Button(); 0 0 location text click

13 500 clientsize text paint controls 0 kleinergroterstraal this CirkelGroei( ) { } Constructor … CirkelGroei teken() {…} this.kleiner.Text = "Kleiner"; 0 0 location text click 0 0 location text click Kleiner this.groter.Text = "Groter"; Groter

14 500 clientsize text paint controls 0 kleinergroterstraal this CirkelGroei( ) { } Constructor … CirkelGroei teken() {…} this.kleiner.Location = new Point(30,20); 0 0 location text click 0 0 location text click KleinerGroter this.groter.Location = new Point(200,20);

15 500 clientsize text paint controls 0 kleinergroterstraal this CirkelGroei( ) { } Constructor … CirkelGroei teken() {…} this.kleiner.Click = this.klik; 0 0 location text click 0 0 location text click KleinerGroter this.groter.Click = this.klik; klik() {…}

16 500 clientsize text paint controls 0 kleinergroterstraal this CirkelGroei( ) { } Constructor … CirkelGroei teken() {…} this.Controls.Add (this.groter); 0 0 location text click 0 0 location text click KleinerGroter klik() {…} this.Controls.Add (this.kleiner);

17 Klassen en objecten nKlasse-definitie in programma Object-creatie in Main nKlasse-definitie in library Object-creatie in constructor nKlasse-definitie in programma Object-creatie in constructor Button CirkelGroei Ruimte

18 Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Button - objecten Ruimte - objecten Deeltje - objecten

19 De klasse Simulatie class Simulatie : Form { Button stap, auto; Ruimte r1, r2, r3; Simulatie( ) { stap = new Button(); stap.Text = "stap"; auto = new Button(); auto.Text ="start"; r1 = new Ruimte(); r2 = new Ruimte(); r3 = new Ruimte();... } Klasse Ruimte gaan we zelf maken!

20 De klasse Ruimte class Ruimte { } Ruimte is een uitbreiding van een bestaande Control : UserControl Deeltje d1, d2, d3; // methoden nog toevoegen ieder Ruimte -object heeft drie eigen Deeltje - objecten

21 De klasse Deeltje class Deeltje { } Deeltje is helemaal zelfgemaakt int x, y; // methoden nog toevoegen positie van het Deeltje int dx, dy; Brush brush; snelheid van het Deeltje om het deeltje te tekenen

22 sim Samenhang van objecten Simulatie r1r2r3 stap auto d1d2d3 Ruimte d1d2d3 Ruimte x y dx dy brush Deeltje x y dx dy brush Deeltje x y dx dy brush Deeltje x y dx dy brush Deeltje x y dx dy brush Deeltje x y dx dy brush Deeltje d1d2d3 Ruimte Button x y dx dy brush Deeltje x y dx dy brush Deeltje x y dx dy brush Deeltje geërfd van Form zelf gedeclareerd geërfd van UserControl

23 Constructie van nieuw object nGeheugenruimte klaarzetten nConstructormethode aanroepen new-expressie doet twee dingen: waarde is pijl naar het nieuwe object r1 d1d2d3 Ruimte die je kunt opslaan r1 = new Ruimte ( ) ;

24 Ruimte ( ) { } Constructormethode class Ruimte : UserControl { Deeltje d1, d2, d3; naam is hetzelfde als van de klasse geen resultaat- type! geërfd van Canvas this. BackColor = Color.LightYellow; this. Paint += this.tekenRuimte; d1 = new Deeltje (...); d2 = new Deeltje (...); d3 = new Deeltje (...);

25 class Deeltje { } De klasse Deeltje int x, y, dx, dy; Brush brush; public Deeltje (...) {...} public void DoeStap (...) {...} public void TekenDeeltje(Graphics g ) {...}

26 class Deeltje { } Methoden van klasse Deeltje int x, y, dx, dy; Brush brush; public void TekenDeeltje ( Graphics gr) { gr. FillEllipse( this.brush, this.x – 4, this.y – 4, 9, 9 ); }

27 class Deeltje { } Methoden van klasse Deeltje int x, y, dx, dy; Brush brush; public void DoeStap (... ) { this.x += this.dx; this.y += this.dy; if (this.x<0) { } this.x = – this.x; this.dx = – this.dx; if (this.y<0) {... } if (this.x>maxX) {... } if (this.y>maxY) {... }

28 Overzicht van klassen nclass Simulatie : Form uSimulatie( ) ustap_Click, auto_Click(object o, EventArgs ea) nclass Ruimte : UserControl uRuimte( ) uTekenRuimte( object o, PaintEventArgs pea ) uDoeStap( ) nclass Deeltje uDeeltje(... ) uTekenDeeltje( Graphics g ) uDoeStap( Size s )

29 class Simulatie : Form { } Methoden van klasse Simulatie Button stap, auto; Ruimte r1, r2, r3; void stap_Click(object o, EventArgs ea ) { r1. DoeStap( ); r2. DoeStap( ); r3. DoeStap( ); }

30 class Ruimte : UserControl { } Methoden van klasse Ruimte Deeltje d1, d2, d3; void TekenRuimte(object o, PaintEventArgs pea ) { Graphics gr = pea.Graphics; d1.TekenDeeltje(gr); d2.TekenDeeltje(gr); d3.TekenDeeltje(gr); } void DoeStap( ) { d1.DoeStap(this.Size); d2.DoeStap(this.Size); d3.DoeStap(this.Size); this.Invalidate(); }


Download ppt "Hoofdstuk 8 Objecten en klassen. Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen."

Verwante presentaties


Ads door Google