Hoofdstuk 3 Tekenen en rekenen
Klasse- en methode-header import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) g.drawString(“Hallo!”, 20, 20); } methode uit de klasse Graphics g.drawLine(10,20,50,60); g.fillRect (70,30,20,20); andere methoden uit Graphics
bepaalt de kleur van later getekende figuren Methoden uit Graphics x y drawString hallo drawLine drawRect drawOval fillRect fillOval setColor bepaalt de kleur van later getekende figuren
methode uit de klasse van object g Klassen en objecten methode uit de klasse van object g Klasse beschrijft mogelijkheden van object public void paint (Graphics g) { g.drawLine(10,20,50,60); g.fillRect (70,30,20,20); Object kan dingen, en onthoudt dingen g.setColor( Color.BLUE ); g.fillRect (30,50,20,20); Klasse biedt ook constanten aan g.setColor( Color.BLUE ); }
Kleuren Color . GREEN RED YELLOW WHITE CYAN MAGENTA BLUE BLACK
Tekenen g.setColor( Color.WHITE ); g.fillRect(0,0,200,100); g.setColor( Color.BLACK ); g.fillRect(10,0,10,100); g.fillRect(50,0,10,100); g.fillRect(90,0,10,100); g.fillRect(0,40,200,10); g.fillRect(0,70,200,10); g.setColor( Color.BLUE ); g.fillRect(0,50,10,20); Compositie met blauw en rood (vrij naar Piet Mondriaan) g.setColor( Color.RED ); g.fillRect(100,0,100,40);
Tekening aanpassen Aanpassen van de breedte van de balken g.setColor( Color.WHITE ); g.fillRect(0,0,200,100); g.setColor( Color.BLACK ); g.fillRect(10,0,10,100); g.fillRect(50,0,10,100); g.fillRect(90,0,10,100); g.fillRect(0,40,200,10); g.fillRect(0,70,200,10); g.setColor( Color.BLUE ); g.fillRect(0,50,10,20); g.setColor( Color.RED ); g.fillRect(100,0,100,40); Aanpassen van de hoogte van het plaatje Aanpassen van de breedte van het plaatje erg veel werk...
Variabelen declaratie: aankondigen van variabelen en hun type int balk, breedte, hoogte; balk = 10; breedte = 200; hoogte = 100; toekennings- opdrachten: variabelen krijgen een waarde g.fillRect(10, 0 ,balk, hoogte); g.fillRect(50, 0, balk, hoogte); g.fillRect(90, 0, balk, hoogte); g.fillRect(0, 40, breedte, balk); g.fillRect(0, 70, breedte, balk); g.fillRect(10, 0, 10, 100); g.fillRect(50, 0, 10, 100); g.fillRect(90, 0, 10, 100); g.fillRect(0, 40, 200, 10); g.fillRect(0, 70, 200, 10); gebruik van variabelen
Opdracht-vormen Methode-aanroep Toekennings-opdracht object . methode ( parameters ) ; variabele = waarde ; wordt
Syntax van opdracht opdracht object . ( ) , ; expressie naam = methode naam = variabele expressie ;
Syntax van declaratie declaratie type naam ; , type naam int double klasse naam int double
Plaats van een declaratie member private methode header { opdracht } public static final type naam = getal ;
Plaats van een declaratie member private declaratie methode header { } opdracht public static final type naam = getal ; methode header ( ) , type methode naam void
Variabelen int x1, x2, x3, y1, y2; x1 x2 x3 g.fillRect(x1, 0 ,balk, hoogte); g.fillRect(x2, 0, balk, hoogte); g.fillRect(x3, 0, balk, hoogte); g.fillRect(0, y1, breedte, balk); g.fillRect(0, y2, breedte, balk); y1 y2 g.setColor( Color.BLUE); g.fillRect(0, y1+balk, x1, y2-y1-balk );
Expressies Expressie: stukje programma met een waarde Gebruik van expressies: Rechterkant van een toekennings-opdracht Parameter van een methode x3 = x2+40 ; g.fillRect(0, y1+balk, x1, y2-(y1+balk) ) ;
Opbouw van expressies constante variabele ... operator ... ( ... ) 5 hoogte ... operator ... x + y + 1 ( ... ) (y + 1) x - expressie expressie expressie
bij deling van int-waarden: cijfers achter de komma worden afgekapt! Operatoren + optellen - aftrekken * vermenigvuldigen / delen bij deling van int-waarden: cijfers achter de komma worden afgekapt! % rest bij deling 14 / 3 geeft 4 want 14 is 4*3 + 2 14 % 3 geeft 2
Prioriteit van operatoren Vermenigvuldigen gaat voor optellen en delen en aftrekken 1 + 2 * 3 geeft 7 Bij gelijke prioriteit: van links naar rechts 10 - 5 - 2 geeft 3 Wil je ’t anders: zet haakjes (1+2) * 3 geeft 9
Syntax van expressies expressie getal operator ( ) variabele ” symbool
Programma met commentaar asd // zwarte balken import java.awt.Graphics; import java.awt.Color; import java.applet.Applet; public class Mondri extends Applet { public void paint(Graphics g) { int breedte, hoogte, balk, x1, x2, x3, y1, y2; breedte = 200; x1 = 10; x2 = 50; x3 = 90; hoogte = 100; y1 = 40; y2 = 70; balk = 10; g.setColor(Color.WHITE); g.fillRect(0, 0, breedte, hoogte); g.setColor(Color.BLACK); g.fillRect(x1, 0, balk, hoogte); g.fillRect(x2, 0, balk, hoogte); g.fillRect(x3, 0, balk, hoogte); g.fillRect(0, y1, breedte, balk); g.fillRect(0, y2, breedte, balk); g.setColor(Color.BLUE); g.fillRect(0, y1+balk, x1, y2-(y1+balk) ); g.setColor(Color.RED); g.fillRect(x3+balk, 0, breedte-(x3+balk), y1); } asd /* Deze applet tekent een Mondriaan-achtige "compositie met rood en blauw” */ // posities van de lijnen // achtergrond // zwarte balken // gekleurde vakken
Commentaar Tekst voor de menselijke lezer, genegeerd door de compiler Twee vormen: van /* tot */ van // tot einde regel