200 likes | 332 Views
Hoofdstuk 4. Nieuwe methoden. Tekenen. public void paint(Graphics g) {. g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60);. g.drawRect(70,60,40,40); g.drawLine(70,60,90,40); g.drawLine(90,40,110,60);.
E N D
Hoofdstuk 4 Nieuwe methoden
Tekenen public void paint(Graphics g){ g.drawRect(20,60,40,40);g.drawLine(20,60,40,40);g.drawLine(40,40,60,60); g.drawRect(70,60,40,40);g.drawLine(70,60,90,40);g.drawLine(90,40,110,60); g.drawRect(120,40,60,60);g.drawLine(120,40,150,10);g.drawLine(150,10,180,40); grote bendecoördinaten! }
Nieuwe methoden private void tekenHuis(…){ … . drawRect (…); … . drawLine (…); … . drawLine (…);} • Methode:groepje opdrachten met een naam public void paint(Graphics g){ … . tekenHuis (…); … . tekenHuis (…); … . tekenHuis (…);} Aanroepvan een methode voert opdrachten uitin de body daarvan
Parameters welk Graphics-objectnemen deze methodenonder handen? private void tekenHuis (…){ (Graphics gr, … ) … . drawRect (…);… . drawLine (…);… . drawLine (…); gr gr gr parameterdeclareren } public void paint (Graphics g){ en bij aanroepmeegeven … . tekenHuis (…);… . tekenHuis (…);… . tekenHuis (…); (g, …); (g, …); (g, …); }
Het object this public class Huizen extends Applet{ } private void tekenHuis (…){ (Graphics gr, … ) … . drawRect (…);… . drawLine (…);… . drawLine (…); gr gr gr welk ……… - objectnemen deze methodenonder handen? Huizen } public void paint (Graphics g){ … . tekenHuis (…);… . tekenHuis (…);… . tekenHuis (…); (g, …); (g, …); (g, …); thisthisthis this: het objectdat paint ook alonder handen heeft }
Meer parameters teken driemaaleen net iets ander huis nog meerparameters! public void paint (Graphics g){ … . tekenHuis (…);… . tekenHuis (…);… . tekenHuis (…); (g, …); (g, …); (g, …); thisthisthis 20, 100, 40); 70, 100, 40); 120, 100, 60); }
(tx,ty) (x,y) br Meer parameters private void tekenHuis (Graphics gr, … ){ int x, int y, int br) int tx, ty; tx = x + br/2; ty = y – br – br/2; gr . drawRect ( … );gr . drawLine ( … );gr . drawLine ( … ); x, y-br, br, br x, y-br, tx, ty tx, ty, x+br, y-br } public void paint (Graphics g){ … . tekenHuis (…);… . tekenHuis (…);… . tekenHuis (…); (g, …); (g, …); (g, …); thisthisthis 20, 100, 40); 70, 100, 40); 120, 100, 60); }
dakh h (x,y) br Flexibiliteit • Hoe meer parameters,des te flexibeler de methode private void tekenHuis (Graphics gr, int x, int y, int br, int h, int dakh, Color kl, Color dakKl, … ) { en des te lastigeraan te roepen...
Veel parameters: Nu lastig om te programmeren In de toekomstmisschien gemakkelijkuit te breiden Weinig parameters: Nu gemakkelijk om te programmeren In de toekomstmisschien lastigte onderhouden Flexibiliteit
Publieksvraag 150 • Schrijf een methode tekenCirkeldie je zo kunt aanroepen: 100 publicvoid paint (Graphics g){ } 50 this.tekenCirkel(g, 150, 100, 50); midden midden straal privatevoid tekenCirkel { } (Graphics g, int cx, int cy, int r) g . fillOval(cx–r, cy–r, 2*r, 2*r );
Communicatie met methoden • Parameters :aanroeper geeft waarde dooraan de methode • Methode-resultaat :methode geeft waardeterug aan de aanroeper net zoals eenwiskundigefunctie
Methoden met een resultaat type van hetresultaat privateint kwadraat (int x){ return x*x ;} waarde van het resultaatin speciale return-opdracht
Aanroep van methoden zonderresultaat • Aanroep van void-methodegeldt als opdracht g.drawString(“hallo”, 10, 10) ; • Aanroep van methode met resultaatgeldt als expressie a = this.kwadraat (5) ; g.drawLine( this.kwadraat (5), 10, 25, 50); … this.kwadraat (5) + 1 …
Return is laatste opdracht Parameterskrijgen hun waardebij de aanroep private double gemiddelde (double a, double b, double c){ } double totaal; Lokale variabelekrijgen hun waardein een toekenning totaal = a + b + c ; return totaal / 3;
Methodes die elkaar aanroepen import java.awt . Graphics;import java.applet . Applet; publicclass Opper extends Applet { } privatedouble kwadraat (double x){ return x*x ;} privatedouble oppervlak (double r){ return 3.14159265 * this.kwadraat(r);} publicvoid paint (Graphics g){ g.drawString(“straal 25, opp.” +this.oppervlak(25), 10, 10 ); }
expressie getal variabele ” ” symbool expressie operator expressie ( expressie ) methode naam object . ( expressie ) , Syntax van expressies
opdracht methode naam object . ( expressie ) ; , variabele = expressie ; return expressie ; Syntax van opdrachten
Samenvatting • Aanroepen van methoden • in Graphics: drawLine, fillRect, setColor • Definiëren van nieuwe methoden • bijvoorbeeld: tekenHuis • Gebruik van parameters • om methoden flexibeler te maken
Samenvatting • Variabelen • om een waarde tijdelijk te bewaren • declaratie geeft het type, bijv. int, double • Expressie • berekening die een waarde oplevert • gebruikt constanten, variabelen, operatoren
Expressies Constante Variabele Operator-expr. Expressie tussen haakjes Aanroep methodemet een resultaat Opdrachten Toekenning Aanroep void-methode Return-opdracht 5 x=5; x x+1 this.tekenHuis (…); (x+1) return x*x; this.kwadraat(5) Samenvatting