LauwersCollege Buitenpost Hoofdstuk 18: Java Soorten Java-programma’s • Java Applet programma dat op een website zichtbaar is • Java Application programma dat zelfstandig werkt Javascript is geen Java! • Javascript Scripttaal ingebed in html-code, ondersteunt opbouw van webpagina’s LauwersCollege Buitenpost Voorbeeld van een Java-programma import java.awt.Graphics; import java.applet.Applet; methodeheader methodeaanroep public class Hallo extends Applet { public void paint (Graphics g) { g.drawString("Hallo!", 20, 20); } } accolades begrenzen klasse en methode één klasse met één methode met één opdracht LauwersCollege Buitenpost Klasse- en methode-header public: mag door andere applets worden gebruikt naam Hallo: zelfbedacht de klasse is een uitbreiding van de libraryklasse Applet import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString("Hallo!", 20, 20); } } void = leeg De methode geeft geen getal of string als resultaat LauwersCollege Buitenpost Opdracht: methode-aanroep opdracht: aanroep van een methode object waarop de methode werkt import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString("Hallo!", 20, 20); } } punt tussen object en methode naam van de methode drie parameters LauwersCollege Buitenpost Klasse-bibliotheken import java.awt . Graphics; import java.applet . Applet; libraryklassen moet je importeren met vermelding van het package waar ze in zitten public class Hallo extends Applet { public void paint (Graphics g) { g.drawString("Hallo!", 20, 20); } } je mag libraryklassen gebruiken LauwersCollege Buitenpost Website met een applet HTML-tag <APPLET> <HTML> Dit is een applet: <BR> <APPLET code = Hallo.class </APPLET> </HTML> bytecode die het resultaat is van het compileren van Hallo.java width=100 height=50> het bestand Hallo.class moet in dezelfde map staan als het html-document LauwersCollege Buitenpost Parameters doorgeven aan applets vanuit HTML altijd een public class Groet extends Applet String als { resultaat public void paint(Graphics g) { String persoon, groet; persoon=this. getParameter("voornaam"); groet = "Hallo " + persoon + "!"; g.drawString(groet, 50, 20); } } <APPLET code=Groet.class width=100 height=100> <PARAM name="voornaam" value="Jeroen"> </APPLET> dit krijg je als resultaat bij aanroep van getParameter("voornaam" LauwersCollege Buitenpost Methoden uit Graphics x drawString(String,x,y) drawLine(x1,y1,x2,y2) y hallo drawRect(x,y,l,b) drawOval(x,y,l,b) fillRect(x,y,l,b) fillOval(x,y,l,b) setColor(k) bepaalt de kleur van later getekende figuren LauwersCollege Buitenpost Variabelen int breedte, hoogte; String s; breedte = 200; hoogte = 100; s = "hallo"; g.fillRect(10, 0, breedte, hoogte); g.drawstring(s,10,200); declaratie: aankondigen van variabelen en hun type toekenningsopdrachten: variabelen krijgen een waarde gebruik van variabelen LauwersCollege Buitenpost Commentaar • Commentaar zet je tussen de programmaregels • Het dient om de code te verduidelijken • Twee vormen: – van /* tot */ – van // tot einde regel public class Groet extends Applet { public void paint(Graphics g) { String persoon, groet; /* haalt de inhoud van de variabele persoon uit het html-document */ persoon=this. getParameter("voornaam"); groet = "Hallo " + persoon + "!"; g.drawString(groet, 50, 20); } } dit is commentaar LauwersCollege Buitenpost Typen van variabelen Gehele getallen: • byte 127 • short 32767 • int 2 miljard • long 9 * 1018 Kommagetallen: float 8 cijfers, 1038 double 15 cijfers, 10308 Letters of woorden: char 1 teken String 1 of meer tekens Boolese variabelen: boolean true of false LauwersCollege Buitenpost Operatoren Beide argumenten int resultaatwaarde int type-conversie Minstens één double resultaatwaarde double type-conversie bij + operator geldt: Minstens één String resultaatwaarde String 2+5=7 3 * 4 = 12 5/2=3 24 % 5 = 4 (rest!) (double)5/2 = 2.5 0.5 * 7 = 3.5 (int)0.5*7 = 4 int b = 7; "nr" + b = "nr7" LauwersCollege Buitenpost Boolean expressies • Vergelijken van waarden x <= y x ==y x != y is x kleiner of gelijk aan y? is x gelijk aan y ? is x ongelijk aan y ? x=5 betekent x wordt 5 • Combineren van boolean expressies met logische operatoren && || and or (x<0) && (y>0) (x==0) || (y==0) ! not ! (x==0) George Boole (1815-1864) LauwersCollege Buitenpost Constanten Kleuren black, blue , cyan , darkGray, gray, green , lightGray, magenta , orange, pink , red , white , yellow Wiskundige constanten Stijlen bij lettertypen bold, italic, plain Denk er om dat Java hoodlettergevoelig is. Math.pi geeft een foutmelding! Color.blue Math.PI en Math.E Font.bold LauwersCollege Buitenpost Objecten maken met de constructor-methode Als je iets anders dan een getal of string declareert dan gebruik je het woord new bij de toekenning; dat wordt de constructormethode genoemd. constructor declaratie Button b; b = new Button("OK"); Aanroep van constructor-methode: • maakt nieuw object in het geheugen • bewerkt dat object alvast • plaatst het niet automatisch op het applet LauwersCollege Buitenpost klasse Font • Declaratie Font f; naam van het font stijl • Aanmaak object f = new Font( "Arial", Font.bold, 12 ); • Gebruik van het object g.setFont ( f ); grootte LauwersCollege Buitenpost klasse Color • Declaratie Color c; rood groen • Aanmaak object c = new Color( 178, 255, 152 ); • Gebruik van het object g.setColor ( c ); blauw LauwersCollege Buitenpost for-opdracht initialisatie (beginwaarde) voorwaarde om door te gaan volgende waarde for ( int t=0 ; t<20 ; t++ ) { String s = String.valueOf(t*7); g.drawString(s, 10 , t*20 ); } maakt van de waarde van t*7 een string LauwersCollege Buitenpost While-opdracht public void paint (Graphics g) { wordt herhaald int t=1; zolang k kleiner double k=1000; dan 2000 is while ( k<2000 ) { k = k * 1.05; String ks = String.valueOf(k); g.drawString(ks, 10, 20*t ); t = t+1; } k wijzigt in de body } LauwersCollege Buitenpost Exceptions Exception: • Uitzonderlijke toestand die door een methode wordt opgeworpen, namelijk als er een fout optreedt in het try-gedeelte • De situatie moet door de aanroeper van de methode worden opgevangen. Er moet worden aangegeven wat er moet gebeuren als er een fout optreedt. dat staat in het catch-gedeelte LauwersCollege Buitenpost Try-catch try { kan een Exception opwerpen (foutmelding) s = invoer . getText ( ); n = Integer.parseInt (s); uitvoer . setText ( "kwadraat is " + n*n ); } Maakt van de string s een getal (integer) catch ( Exception e ) { uitvoer . setText ( s + " is geen getal" ); } Doe dit als er een fout optreedt Probeer deze opdrachten eerst uit te voeren LauwersCollege Buitenpost API Als je iets over een methode wilt weten kun je de API raadplegen, via internet of de java-documentatie