1 / 30

Hoofdstuk 8

Hoofdstuk 8. verplicht…. Keuze. if. while (temperatuur<0) temperatuur += 5;. opdracht wordt steeds opnieuw uitgevoerd zolang voorwaarde geldt. Opdrachten voorwaardelijk uitvoeren. if (temperatuur<0) gr.drawString(“Het vriest!”, 10, 10);.

arissa
Download Presentation

Hoofdstuk 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hoofdstuk 8 verplicht… Keuze

  2. if while (temperatuur<0) temperatuur += 5; opdracht wordt steeds opnieuwuitgevoerd zolang voorwaarde geldt Opdrachten voorwaardelijk uitvoeren if (temperatuur<0) gr.drawString(“Het vriest!”, 10, 10); opdracht wordt alleenuitgevoerd als voorwaarde geldt

  3. Twee alternatieven if (temperatuur<0) gr.drawString(“Het vriest!”, 10, 10); else gr.drawString(“Het dooit.”, 10, 10); opdracht wordt alleenuitgevoerd als voorwaarde niet geldt

  4. Keuze is ook een opdracht for (n=1; n<20; n++) if (n%3==0) gr.drawString(n + “drievoud”, 10, 10 ); *n else gr.drawString(n + “niet”, 10, 10 ); *n één opdracht dus geen accolades nodig! if-opdracht dient in z’n geheel als body van for-opdracht

  5. Meer opdrachten als body if (temperatuur<0) gr.drawString(“Het vriest!”, 10, 10); { } gr.drawString(“Koud he!”, 10, 20); accolades maken twee opdrachten tot één body

  6. Meerdere alternatieven if (leeftijd<4) tf.setText(“Gratis”); else if (leeftijd<12) tf.setText(“Railrunner”); else if (leeftijd<65) tf.setText(“Vol tarief”); else tf.setText(“Seniorenkaart”); if-opdracht dient in z’n geheel als body van else-deel if-opdracht dient in z’n geheel als body van else-deel

  7. Meerdere alternatieven if (leeftijd<4) tf.setText(“Gratis”); elseif (leeftijd<12) tf.setText(“Railrunner”); elseif (leeftijd<65) tf.setText(“Railrunner”); elseif (leeftijd<65) tf.setText(“vol tarief”); else tf.setText(“Seniorenkaart”); tf.setText(“Vol tarief”); else tf.setText(“Seniorenkaart”); uitzondering op gewoonte om body in te springen

  8. Meerdere alternatieven bij return-opdracht is methode beëindigd private String tarief(int leeftijd) { } if (leeftijd<4)return “Gratis”; elseif (leeftijd<12) return “Railrunner”; elseif (leeftijd<65) return “Vol tarief”; elsereturn “Seniorenkaart”; if (leeftijd<4)return “Gratis”; if (leeftijd<12) return “Railrunner”; if (leeftijd<65) return “Vol tarief”; return “Seniorenkaart”;

  9. Cirkel tekenen class Cirkel extends Applet { } implements ActionListener Button b; public void init ( ) { straal = 100; b = new Button(“groter”); this.add(b); b.addActionListener(this); int straal; public void init ( ) { straal = 100; } public void actionPerformed(ActionEvent e) { straal += 10; this.repaint(); } public void paint(Graphics gr) { gr.fillOval(150-straal,150-straal,2*straal,2*straal); }

  10. Cirkel tekenen class Cirkel extends Applet { implements ActionListener int straal; Button klein, groot; public void init ( ) { straal = 10; klein = new Button(“kleiner”); this.add(klein); groot = new Button(“groter”); this.add(groot); klein.addActionListener(this); groot.addActionListener(this); }

  11. public void actionPerformed(ActionEvent e) { if ( e.getSource() == klein ) straal -= 10; if ( e.getSource() == groot ) straal += 10; this . repaint(); } e.getSource() Cirkel tekenen public void actionPerformed(ActionEvent e) { if ( e.getSource() == klein && straal>10 ) straal -= 10; if ( e.getSource() == groot && straal<150 ) straal += 10; this . repaint(); } gelijkheid van Button-object-verwijzingen)

  12. Geheime tekening class Geheim extends Applet { boolean open; public void init () { open = false; } TextField pass; pass = new TextField(20); this.add(pass); pass.addActionListener(this); } public void paint (Graphics gr) { gr.setColor(Color.GREEN); gr.fillOval(50,50,100,100); gr.setColor(Color.BLUE); gr.fillOval(81,85,8,8); gr.fillOval(111,85,8,8); gr.drawArc(75,75,50,50,225,90); } if (open) { }

  13. Geheime tekening class Geheim extends Applet implements ActionListener { boolean open; TextField pass; public void actionPerformed (ActionEvent e) { open = true; this . repaint(); } if ( pass.getText() . equals (“geheim”) ) { } pass . setVisible(false);

  14. hoi hoi s s s s x 5 hoi hoi t t t t hoi hoi y 5 operator == of methode equals ? • == test gelijkheid van variabelen true true false • equals test gelijkheid van String-inhoud true true methode voor String- objecten

  15. Min./max. thermometer class Thermo extends Applet { impelements AdjustmentListener, ActionListener Scrollbar meter; int minimum, maximum; public void init () { Button reset; meter = new Scrollbar(Scrollbar.HORIZONTAL,0,1,-50,50); reset = new Button(“reset”); } this.add(meter); this.add(reset); meter.addAdjustmentListener(this); reset.addActionListener(this); minimum = 0; maximum = 0;

  16. Min./max. thermometer public void paint (Graphics gr) { gr.drawString( “hoogste ” + maximum, 50,50); gr.drawString( “laagste ” + minimum, 50,70); } public void adjustmentValueChanged(AdjustmentEvent e) { this.repaint(); } int waarde; waarde = meter.getValue(); if (waarde>maximum) waarde; maximum = minimum = if (waarde<minimum) waarde;

  17. Grafiek-tekenprogramma ingevoerde waarden abc nulpuntenvolgens abc-formule grafiek van een parabool

  18. Opzet van klasse Parabool • declaratie Objectvariabelen • methode init • methode actionPerformed • methode paint bouwt interface converteert a,b,c “regisseert” het tekenen • methode nulpunten • methode assen • methode grafiek doen heteigenlijke tekenwerk • methode parabool berekent ax2+bx+c

  19. Parabool: init class Parabool extends Applet implements ActionListener { TextField abox, bbox, cbox; double a, b, c; public void init () { a = 0.5; b = 2.0; c = -4.0; } abox = new TextField( “”+a, 8 ); bbox = new TextField( “”+b, 8 ); cbox = new TextField( “”+c, 8 ); this.add(abox); this.add(bbox); this.add(cbox); abox.addActionListener(this); bbox.addActionListener(this); cbox.addActionListener(this);

  20. Parabool: actionPerformed public void actionPerformed(ActionEvent e) { } a = b = c = this.repaint (); Double.parseDouble( ); Double.parseDouble( ); Double.parseDouble( ); abox.getText() bbox.getText() cbox.getText()

  21. Parabool: paint public void paint (Graphics gr) { } gr . setColor( Color.BLACK ); gr . setColor( Color.RED ); gr . setColor( Color.BLUE ); nulpunten assen grafiek (gr); (gr); (gr); this . this . this . private void assen (Graphics gr) { gr.drawLine(0, 250, 500, 250); gr.drawLine(250, 0, 250, 500); }

  22. -b ± b2-4ac 2a Parabool: nulpunten public void nulpunten (Graphics gr) { } discriminant = b*b - 4*a*c; noemer = 2*a; if (discriminant<0) gr.drawString(“geen nulpunten”); else { } wortel = Math.sqrt(discriminant); gr.drawString( (-b -wortel)/noemer + “ en ” +(-b+wortel)/noemer , 50, 50 );

  23. Parabool: grafiek public void grafiek (Graphics gr) { } int x, y,oldy; double xw, yw, schaal; schaal = 0.03; oldy = 0; for ( x=0 ; x<500 ; x++ ) { } xw = schaal * x ; w w y = yw / schaal ; ( -250) y = this.parabool( x ); (int) (250-( )) if (x>0) gr.drawLine( , , x, y ); x-1 oldy oldy = y;

  24. Testen van een reeks mogelijke waarden switch (x) { } if (x==1) else if (x==2) else if (x==3) else if (x==4) else if (x==5) else if (x==6) else if (x==7) else case 1: case 2: case 3: case 4: case 5: case 6: case 7: default: this.een(); this.twee(); this.drie(); this.vier(); this.vijf(); this.zes(); this.zeven(); this.meer(); break; break; break; break; break; break; break;

  25. Exceptions Exception: • Uitzonderlijke toestand diedoor een methode wordt opgeworpen • De situatie moet door de aanroepervan de methode worden opgevangen throw catch

  26. Voorbeeld van Exception kan een Exception opwerpen try { } s = invoer . getText ( ); n = Integer . parseInt (s); uitvoer . setText ( “kwadraat is ” + n*n ); catch ( Exception e ) { uitvoer . setText ( s + “ is geen getal” ); } opvangen vanhet probleem

  27. Soorten Exceptions Subklassen van Exception • NumberFormatException • NullPointerException • InterruptedException • IOException • FileNotFoundException • ... vrijwillig op te vangen verplicht op te vangen

  28. Meerdere catch-delen als er een Exception optreedt, wordt de eerste catch gekozen met een passend type try { } // open een file // en lees de inhoud catch ( FileNotFoundException f ) { uitvoer . setText ( s + “ bestaat niet” ); } catch ( IOException i ) { uitvoer . setText ( s + “ is onleesbaar” ); }

  29. Opdrachten Toekenning Aanroep void-methode return-opdracht while-opdracht for-opdracht { ... } - bundeling if-opdracht try/catch-opdracht Expressies Constante Variabele Aanroep methode Expressie met operatoren Expressie met haakjes new-expressie this Overzicht programma-constructies kun je doen kun je uitrekenen • switch-opdracht • break-opdracht

  30. Declaratie Lokale variabelevoor tijdelijk gebruik Object-variabelepermanent deel vanhet object Parameterom waarden doorte spelen aan methode Type Primitief type int double boolean Object-type Color, String enz. TextField, Button enz. Applet, Hallo, enz. Overzicht programma-constructies waarde-verzamelingvan een expressie geeft het typevan variabelen

More Related