Hoofdstuk 2 Java Soorten Java-programma’s Java Applet programma “leeft” op een WWW-pagina Java Application programma heeft een eigen window Javascript Javascript is geenvan Java! programma ondersteunt opbouw WWW-pagina’s Java versus Imperatief o.a. Internet-gebaseerd Object-georiënteerd Gecompileerde bytecode Werkt binnen vast kader Uitgebreide bibliotheken van methoden Voor programmeurs Javascript Imperatief Internet-gebaseerd “Slechts” procedureel Direct geïnterpreteerd Beïnvloedt browser Beperkt aantal ingebouwde methoden Voor web-designers Opbouw broncode Opdrachten om het geheugen te veranderen Opdrachten zijn gegroepeerd in methoden Methoden zijn gegroepeerd in klassen Soorten opdrachten Toekennings -opdracht: verander het geheugen Aanroep van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de “waar was ik gebleven” administratie is best ingewikkeld! Object-oriëntatie Object: samenhangend stukje van het geheugen Object-georiënteerd programmeren: methodes hebben (meestal) betrekking op een bepaald object, dat je bij aanroep moet vermelden Voorbeeld Java-programma import java.awt.Graphics; import java.applet.Applet; één klasse ...met één methode ...met één opdracht public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } accolades begrenzen klasse, resp. methode Klasse- en methode-header public: mag door de buitenwereld worden gebruikt naam: bedacht door de programmeur import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } Opdracht: methode-aanroep import java.awt.Graphics; import java.applet.Applet; opdracht: aanroep van een andere methode public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } object waarop naam van de altijd de methode werkt een punt methode overige details Communicatie met browser onze klasse is een uitbreiding van de libraryklasse Applet de browser roept de methode paint aan, en levert daarbij een Graphics-object ... ... dat we in de opdrachten goed kunnen gebruiken! import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } Klasse-bibliotheken library-klassen mag je gebruiken ... als je ze maar importeert, met vermelding van het package waar ze in zitten import java.awt . Graphics; import java.applet . Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } Methode-header en -aanroep 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); } } we krijgen een parameter we geven drie parameters WWW-pagina met Applet speciale HTML-tag <APPLET> <HTML> Hier is een <B>simpel</B> applet: <BR> <APPLET code = Hallo.class width = 100 height= 50 > </APPLET> </HTML> bytecode die het resultaat is van het compileren van Hallo.java Neerzetten van een Applet import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } Hallo.java <HTML> Hier is een <B>simpel</B> applet: <BR> <APPLET code = Hallo.class width = 100 height= 50 > </APPLET> </HTML> Hallo.html compiler Hallo.class Syntax en semantiek Syntax: de vorm van het programma program import package naam . klasse naam Semantiek: wat het programma betekent ; klasse definitie Syntax van klasse-definitie klasse definitie klasse header public private { methode definitie klasse header class klasse naam extends naam } Syntax van methode-definitie methode definitie methode public private header opdracht { methode header type void methode naam ( par-decl , ) } Syntax van opdracht opdracht object . methode naam ( expressie , ) ; Voorbeeld Java-programma import java.awt.Graphics; import java.applet.Applet; één klasse ...met één methode ...met één opdracht public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } Opdracht: methode-aanroep import java.awt.Graphics; import java.applet.Applet; opdracht: aanroep van een andere methode public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } object waarop naam van de altijd de methode werkt een punt methode overige details Methode-header en -aanroep 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); } } we krijgen een parameter we geven drie parameters Samenvatting import java.awt.Graphics; import java.applet.Applet; public class Hallo extends Applet { public void paint (Graphics g) { g.drawString(“Hallo!”, 20, 20); } } Hallo.java <HTML> Hier is een <B>simpel</B> applet: <BR> <APPLET code = Hallo.class width = 100 height= 50 > </APPLET> </HTML> Hallo.html compiler Hallo.class