Presentation is loading. Please wait.

Presentation is loading. Please wait.

Hoofdstuk 13 Object-georiënteerd ontwerp. Methode-aanroep: Type van parameters void paint(Graphics g) { g.drawRect( ); class Graphics { void drawRect(int.

Similar presentations


Presentation on theme: "Hoofdstuk 13 Object-georiënteerd ontwerp. Methode-aanroep: Type van parameters void paint(Graphics g) { g.drawRect( ); class Graphics { void drawRect(int."— Presentation transcript:

1 Hoofdstuk 13 Object-georiënteerd ontwerp

2 Methode-aanroep: Type van parameters void paint(Graphics g) { g.drawRect( ); class Graphics { void drawRect(int x, int y, int w, int h) {…} void drawString(String s, int x, int y) {…} void setColor(Color c) {…} 10,10,40,50 g.drawRect( t,0,9,9); int t; t=5;for( t<20; t++) 10* g.drawString(“hoi”,5,50); g.setColor(Color.RED); g.setColor(k); Color k; k = new Color( 255,128,0 );

3 Methode-aanroep: Type van object class Scanner { © Scanner String next () { } boolean hasNext() { } Scanner t; t = new Scanner ( “dit is tekst”, “ ” ); t. hasNext ( ) t. next ( ) while ( ) { } s = ; String s; doeIetsNuttigsMet ( s ); String rest, sep; (String x, String y) { } rest=x; sep=y; ……rest.substring(…)… return ! rest.equals(“”);

4 Subtypen ook acceptabel class Container { } class Panel extends Container class Applet extends Panel class Button extends Component class Component { } void add(Component c) {…} class Hoi extends Applet { void init( ) { this. add( ); Panel p = new Panel(); p. add( ); Button b = new Button(); Label t = new Label(); b p. add( t ); p void paint(Graphics g) { … } extends Component

5 Ook acceptabel: class Thread { class Hoi extends Applet { void eenMethode( ) { } © Thread( ) { } void start( ) { } Thread t; t = new Thread( ); t. start( ); a. run( ); Runnable r a = r ; Runnable a; } void run ( ) { while (true) …… } this implements Runnable interface Runnable { void run( ); // geen body! } Implementatie van interface

6 Ook acceptabel: andere class Thread { class Hoi extends Applet { void eenMethode( ) { } © Thread( ) { } void start( ) { } Thread t; t = new Thread( ); t. start( ); a. run( ); Runnable r a = r ; Runnable a; } void run ( ) { while (true) …… } x interface Runnable { void run( ); // geen body! } Implementatie van interface } class R implements Runnable { x = new R(); Runnable x;

7 Interface ActionListener: zelf luisteren class Component { class Hoi extends Applet { void init( ) { } void addActionListener (ActionListener a) { …… } } interface ActionListener { void actionPerformed (ActionEvent e ); } Button b; b = new Button(); this.add(b); b. addActionListener(this); void actionPerformed (ActionEvent e ) { …… } implements ActionListener

8 Interface ActionListener: 2 andere klassen class Hoi extends Applet { } void init( ) { } Button b = new Button(); b. addActionListener( ); TextArea t = new TextArea(); t. addActionListener( ); class AL1 implements ActionListener { } class AL2 implements ActionListener { } void actionPerformed (ActionEvent e) { reageer op de button } void actionPerformed (ActionEvent e) { reageer op het tekstveld } new AL1() new AL2()

9 Interface ActionListener: 1 andere klasse class Hoi extends Applet { } void init( ) { } Button b = new Button(); b. addActionListener( ); TextArea t = new TextArea(); t. addActionListener( ); class AL implements ActionListener { } © AL (int x) { } new AL (1) new AL (2) void actionPerformed (ActionEvent e) { } int a; a = x; if (a==1) reageer op de button else reageer op het tekstveld

10 Klasse hierarchieën Component TextArea TextField Panel Window Applet Frame DialogFileDialog Button Canvas Label Scrollbar Text Component Container Event Listener Action Listener Adjustment Listener Component Listener Mouse Listener MouseMotion Listener en interface-hierarchieën

11 Interface MouseListener: niet 1, maar 5 methoden… interface MouseListener { class ML { void mousePressed(MouseEvent e); void mouseReleased(MouseEvent e); void mouseClicked(MouseEvent e); void mouseEntered(MouseEvent e); void mouseExited(MouseEvent e); } implements MouseListener void mousePressed(MouseEvent e) { doe iets in reactie op indrukken } void mouseReleased(MouseEvent e) {} void mouseClicked(MouseEvent e) {} void mouseEntered(MouseEvent e) {} void mouseExited(MouseEvent e) {} }

12 Interface MouseListener: niet 1, maar 5 methoden… interface MouseListener { class ML { void mousePressed(MouseEvent e); void mouseReleased(MouseEvent e); void mouseClicked(MouseEvent e); void mouseEntered(MouseEvent e); void mouseExited(MouseEvent e); } extends MouseAdapter void mousePressed(MouseEvent e) { doe iets in reactie op indrukken } } class MouseAdapter implements MouseListener { void mousePressed(MouseEvent e) {} void mouseReleased(MouseEvent e) {} void mouseClicked(MouseEvent e) {} void mouseEntered(MouseEvent e) {} void mouseExited(MouseEvent e) {} } abstract Her definitie de rest hoeft niet gewijzigd!

13 Zelf maken van abstracte klassen interface MouseMotionListener { class ML { void mouseMoved(MouseEvent e); void mouseDragged(MouseEvent e); } extends MuisBeweger void mouseMoved(MouseEvent e) { doe iets in reactie op bewegen } } class MuisBeweger implements MouseMotionListener { void mouseDragged(MouseEvent e) { this.mouseMoved(e); } } abstract niet compleet, maar deze hebben we alvast! de andere…

14 Abstracte klasse nOnmogelijk om new objecten van te maken nBedoeld om subklassen van te maken nVaak: onvolledige implementatie van een interface… n…met lege methoden, of elkaar aanroepende methoden

15 Mouse Adapter MouseMotion Adapter Klasse hierarchieën Component TextArea TextField Panel Window Applet Frame DialogFileDialog Button Canvas Label Scrollbar Text Component Container Event Listener Action Listener Adjustment Listener Component Listener Mouse Listener MouseMotion Listener en interface-hierarchieën Component Text Component Container abstracte klasse in java.awt gemiste kansen in java.awt

16 Diagram-symbolen Klasse Abstracte Klasse Interface extendsimplements methodeheaders (wensenlijstje) complete methoden en declaraties objectvariabelen gedeeltelijke implementatie

17 Samenvatting 13.1 nKlasse uGroep methoden uType van een object nInterface u“Wensenlijstje” voor een klasse nAbstracte klasse uGedeeltelijke implementatie uNiet bedoeld voor new, maar voor extends Mouse Listener Runnable Mouse Adapter Container


Download ppt "Hoofdstuk 13 Object-georiënteerd ontwerp. Methode-aanroep: Type van parameters void paint(Graphics g) { g.drawRect( ); class Graphics { void drawRect(int."

Similar presentations


Ads by Google