De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Hoofdstuk 9 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 9 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... {... init() { }... actionPerformed (...) { }... paint(...) { } } Button b; int t; b = new Button(); t = 0;... g.drawString(t...); t = t+1; this.repaint();

4 x Declaratie Declaratie reserveert geheugenruimte nVoor een primitieve waarde nVoor een object-verwijzing int x; x = 5; Scrollbar s; s = new Scrollbar(...); 5 s zoals be- schreven in klasse Scrollbar

5 Creatie van nieuwe objecten nObjecten met als type een library-klasse Scrollbar s; s = new Scrollbar(...); type van het gewenste object nObjecten met als type een zelfgemaakte klasse Thermo t; t = new Thermo( ); dit doet de browser t. init ( ); t. paint (...);

6 Creatie van objecten nOpbouw van object is gespecificeerd in de klasse meter minmax Thermo browser’s current applet geërfd zelf gede- clareerd class Thermo { } Scrollbar meter; int min, max; // methoden... extends Applet

7 meter minmax Thermo browser’s current applet Aanroep van init reset this Scrollbar Button 0 0 public void init ( ) { } Button reset; min = 0;max = 0; meter = new Scrollbar(...); reset = new Button(...);

8 Aanroep van init meter minmax Thermo browser’s current applet reset this Scrollbar Button 0 0 } this. add(meter); this. add(reset); reset. addActionListener(this); meter. addAdjListener(this); added adjListener actListener 0 value reset = new Button(...);

9 Na afloop van Aanroep van init meter minmax Thermo browser’s current applet Scrollbar Button 0 0 added adjListener actListener 0 value

10 Klassen en objecten nKlasse-definitie in library Object-creatie met new nKlasse-definitie in programma Object-creatie door browser nKlasse-definitie in programma Object-creatie met new Thermo Scrollbar Ruimte

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

12 De klasse Simulatie public class Simulatie extends Applet { Button stap, auto; Ruimte r1, r2, r3; public void init ( ) { stap = new Button (“stap”); auto = new Button (“start”); r1 = new Ruimte(...); r2 = new Ruimte(...); r3 = new Ruimte(...);... } Klasse Ruimte gaan we zelf maken!

13 De klasse Ruimte private class Ruimte { } Ruimte is een uitbreiding van een bestaand interactie-object extends Canvas Deeltje d1, d2, d3; // methoden nog toevoegen ieder Ruimte -object heeft drie eigen Deeltje - objecten

14 De klasse Deeltje private class Deeltje { } Deeltje is helemaal zelfgemaakt int x, y; // methoden nog toevoegen positie van het Deeltje int dx, dy; Color kleur; snelheid van het Deeltje

15 browser’s current applet Samenhang van objecten Simulatie r1r2r3 stap auto d1d2d3 Ruimte d1d2d3 Ruimte x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje d1d2d3 Ruimte Button x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje geërfd van Applet zelf gedeclareerd geërfd van Canvas

16 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 (... ) ;

17 private Ruimte ( ) { } Constructormethode private class Ruimte { Deeltje d1, d2, d3; } int breed, int hoog naam is hetzelfde als van de klasse geen resultaat- type! geërfd van Canvas this. setBackground (Color.YELLOW); d1 = new Deeltje (...); d2 = new Deeltje (...); d3 = new Deeltje (...); this. setSize (breed,hoog);

18 private class Deeltje { } De klasse Deeltje int x, y, dx, dy; Color kleur; public Deeltje (...) {...} public void doeStap (...) {...} public void teken (Graphics g ){...}

19 private class Deeltje { } Methoden van klasse Deeltje int x, y, dx, dy; Color kleur; public void teken ( Graphics gr) { gr. setColor (kleur); gr. fillOval( x-3, y-3, 7, 7 ); }

20 private class Deeltje { } Methoden van klasse Deeltje int x, y, dx, dy; Color kleur; public void doeStap (... ) { x += dx; y += dy; if (x<0) { } x = -x; dx = -dx; if (y<0) {... } if (x>maxX) {... } if (y>maxY) {... }

21 Overzicht van klassen nclass Simulatie extends Applet impl ActList uinit uactionPerformed nclass Ruimte extends Canvas uRuimte upaint nclass Deeltje uDeeltje udoeStap, teken

22 public class Simulatie extends Applet impl ActionListener { } Methoden van klasse Simulatie Button stap, auto; Ruimte r1, r2, r3; public void init ( ) { stap = new Button (“stap”); auto = new Button (“start”); r1 = new Ruimte (100, 196); r2 = new Ruimte (196, 150); r3 = new Ruimte ( 60, 75); } this.add(stap); this.add(auto); this.add(r1); this.add(r2); this.add(r3); stap.addActionListener(this); auto.addActionListener(this);

23 public class Simulatie extends Applet impl ActionListener { } Methoden van klasse Simulatie Button stap, auto; Ruimte r1, r2, r3; public void actionPerformed (ActionEvent e ) { if (e.getSource() == stap) this.doeStap( ); else... } private void doeStap ( ) { } r1.doeStap();r2.doeStap();r3.doeStap(); r1.repaint ();r2.repaint ();r3.repaint ();

24 private class Ruimte extends Canvas { } Methoden van klasse Ruimte Deeltje d1, d2, d3; public Ruimte (int breed, int hoog) { this.setSize (breed, hoog); this.setBackground (Color.gray); d1 = new Deeltje(Color.RED, 30, 40, 10, 10); d2 = new Deeltje(Color.GREEN, 100, 80, 5, -10); d3 = new Deeltje(Color.BLUE, 200, 60, 8, 2); }

25 private class Ruimte extends Canvas { } Methoden van klasse Ruimte Deeltje d1, d2, d3; public void doeStap ( ) { d1. doeStap (this.getSize()); d2. doeStap (this.getSize()); d3. doeStap (this.getSize()); } public void paint (Graphics gr) { d1. teken (gr); d2. teken (gr); d3. teken (gr); }

26 Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje” zich zelfstandig ontwikkelende lijn van gebeurtenissen

27 Maak een animatie animatie. start ( );this. run ( ); roept run aan van object dat bij constructor is meegegeven Thread animatie; animatie = new Thread ( this ); en keert dan direct terug (terwijl run nog bezig is)

28 De methode run class Simulatie extends Applet { } implements Runnable public void run ( ) { } while (true) this. doeStap ( ); {}{} oneindige herhaling! Thread. sleep (50); milliseconden try { Thread. sleep (50); } catch (Exception e) { } milliseconden

29 if (beweging) { auto. setLabel (“Start”); beweging = false; } else { } Starten van de animatie public void actionPerformed (ActionEvent e) { } if (e.getSource ( )==auto) { } else this. doeStap ( ); animatie = new Thread(this); animatie. start ( ); auto. setLabel (“Stop”); beweging = true;

30 De methode run nogmaals class Simulatie extends Applet { } implements Runnable public void run ( ) { } this. doeStap ( ); {}{} try { Thread. sleep (50); } catch (Exception e) { } oneindige herhaling! while (true) while (beweging) eindige herhaling.

31 if (beweging) { auto. setLabel (“Start”); beweging = false; } else { } Handiger Starten van de animatie public void actionPerformed (ActionEvent e) { } if (e.getSource ( )==auto) { } else this. doeStap ( ); animatie = new Thread(this); animatie. start ( ); auto. setLabel (“Stop”); beweging = true; (animatie != null ) animatie = null;

32 De waarde null nnull : verwijzing naar niks x = null; x nnull is een geldige waarde voor elk object-verwijzings-type

33 Samenvatting meter minmax Thermo browser’s current applet Scrollbar Button 0 0 added adjListener actListener 0 value

34 Samenvatting nMaak objecten van een zelfbedachte klasse uvariabelen: wat is het object umethoden: wat kan het object

35 browser’s current applet Simulatie r1r2r3 stap auto d1d2d3 Ruimte d1d2d3 Ruimte x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje d1d2d3 Ruimte Button x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje geërfd van Applet zelf gedeclareerd geërfd van Canvas


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

Verwante presentaties


Ads door Google