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