De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 9 Objecten en klassen.

Verwante presentaties


Presentatie over: "Hoofdstuk 9 Objecten en klassen."— Transcript van de presentatie:

1 Hoofdstuk 9 Objecten en klassen

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

3 Klasse-definitie Opsomming van methoden ieder bestaand uit opdrachten
class Teller ... { Button b; int t; Opsomming van methoden ieder bestaand uit opdrachten ... init() { } b = new Button(); t = 0; ... bewerken ... paint(...) { } g.drawString(t...); Beschrijving van objecten door declaraties van variabelen ... actionPerformed(...) { } t = t+1; this.repaint(); }

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

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

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

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

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

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

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

11 Voorbeeld: Simulatie van bewegende deeltjes
Simulatie - object Ruimte - objecten Deeltje - objecten Button - 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 heeft drie eigen Deeltje - objecten
De klasse Ruimte Ruimte is een uitbreiding van een bestaand interactie-object private class Ruimte { } extends Canvas Deeltje d1, d2, d3; ieder Ruimte -object heeft drie eigen Deeltje - objecten // methoden nog toevoegen

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

15 Samenhang van objecten
Simulatie Samenhang van objecten Button geërfd van Applet zelf gedeclareerd r1 r2 r3 stap auto browser’s current applet Button d1 d2 d3 Ruimte d1 d2 d3 Ruimte d1 d2 d3 Ruimte geërfd van Canvas x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje

16 Constructie van nieuw object
new-expressie doet twee dingen: r1 = new Ruimte ( ... ) ; r1 Geheugenruimte klaarzetten d1 d2 d3 Ruimte 100 196 Constructormethode aanroepen waarde is pijl naar het nieuwe object die je kunt opslaan

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

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

19 Methoden van klasse Deeltje
private class 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 Methoden van klasse Deeltje
private class 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 class Simulatie extends Applet impl ActList
init actionPerformed class Ruimte extends Canvas Ruimte paint class Deeltje Deeltje doeStap, teken

22 Methoden van klasse Simulatie
public class Simulatie extends Applet impl ActionListener { } 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 Methoden van klasse Simulatie
public class Simulatie extends Applet impl ActionListener { } 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 Methoden van klasse Ruimte
private class Ruimte extends Canvas { } 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 Methoden van klasse Ruimte
private class Ruimte extends Canvas { } 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 zich zelfstandig ontwikkelende lijn van gebeurtenissen
Animatie Animatie: “tekenfilm” programma toont automatisch veranderende beelden Gemakkelijk te programmeren met gebruik van de klasse “draadje” Thread zich zelfstandig ontwikkelende lijn van gebeurtenissen

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

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

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

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

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

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

33 Samenvatting Button actListener meter min max Thermo
browser’s current applet added Scrollbar adjListener value

34 Samenvatting Maak objecten van een zelfbedachte klasse
variabelen: wat is het object methoden: wat kan het object

35 Simulatie Button geërfd van Applet zelf gedeclareerd r1 r2 r3 stap auto browser’s current applet Button d1 d2 d3 Ruimte d1 d2 d3 Ruimte d1 d2 d3 Ruimte geërfd van Canvas x y dx dy kleur Deeltje x y dx dy kleur Deeltje x y dx dy kleur Deeltje


Download ppt "Hoofdstuk 9 Objecten en klassen."

Verwante presentaties


Ads door Google