Er bestaan heel wat verschillende programmeertalen en technieken. Java is een objectgeoriënteerde programmeertaal. |
![]() |
Het is de bedoeling om met deze cursus een goed inzicht te krijgen in de werking van Java, wij gebruiken hiervoor Java 2 versie 1.5.0 soms ook gewoon afgekort tot Java 2 5.0 (men laat de eerste een vaak wegvallen). We spreken voluit over Java 2 Standard Edition 5.0 (J2SE 5.0)
Java werd ontwikkeld in 1991 door Sun Microsystems. In die tijd werd voor de taal nog de naam Oak gebruikt. Het opzet was een platformonafhankelijke, objectgeoriënteerde taal te ontwikkelen. Doordat Java platformonafhankelijk is, is deze taal met de opgang van het internet heel snel bijzonder populair geworden. Oak werd tot Java omgedoopt in 1995.
Jouw computer kan Java programma's draaien wanneer deze beschikt over een Java Virtual Machine (JVM), de toepassing die het Java-programma feitelijk uitvoert.
Wanneer je later een Java-programma schrijft zal je het bestand dat je code bevat (.java) moeten compileren vooraleer het kan worden uitgevoerd. Java-programma's worden niet gecompileerd tot direct uitvoebare bestanden, maar tot zogenaamde bytecode (.class). Het zijn deze bytecodes die de JVM leest en interpreteert om jouw programma uit te voeren.
Omdat het programma eerst in machine-onafhankelijke bytecode wordt omgezet kan het later door om het even welk systeem dat over een JVM beschikt worden uitgevoerd.
Sinds Java 2 wordt de bytecode niet meer regel per regel geïnterpreteerd, dit was echter een struikelblok voor veel programmeurs daar interpretatie een 'traag' proces is. De bytecode wordt nu Just-In-Time (JIT) gecompileerd. De JIT-compiler is in de JVM ingebouwd en compileert in feite secties van het bytecode-bestand in machinetaal, zodat het programma sneller kan worden uitgevoerd.
Het gebruik van deze tussenliggende bytecode geeft als gevolg dat deze bestanden heel compact zijn, en derhalve uiterst geschikt voor het internet. De JVM kan ook strikt toezicht houden over wat er precies gebeurt tijdens de uitvoering van een Java-programma, wat ten goede komt aan de beveiliging tegen kwaadaardig gebruik van code.
Java is niet enkel op het internet gericht: in feite zijn er twee types programma's in Java -een voor gebruik op het internet en een voor lokaal gebruik.
Ook moet worden vermeld dat browsers niet altijd up-to-date zijn voor het gebruik van de meest recente versies van Java. Daarom zal het in deze cursus soms nodig zijn bepaalde bestanden te downloaden en lokaal te laten uitvoeren in bijvoorbeeld de appletviewer van Sun. Meer hierover in het volgende onderwerp: Java verkrijgen en installeren.
Alles wat je nodig hebt om thuis Java-programma's en applets uit te voeren en te ontwerpen kan je downloaden van het internet.
Je kan de Java2 Standard Edition Software Development Kit (J2SE SDK) downloaden van de website van Sun De gebruikte versie is 1.5 of later. Je er ook meteen de Netbeans IDE bijnemen, dan beschik je straks meteen over een editor: een programma om op een gebruiksvriendelijke manier Java-toepassingen te maken.
Deze cursus spits zich toe op het programmeren in Java, en behandelt enkel de code. De keuze van een editor laat ik aan jou over.
Een handleiding tot Netbeans IDE 4 beta 2 vind je op het internet.
Voor het gebruik van deze IDE is het misschien handig eerst NetBeans 3.6 te gebruiken. In versie 4 beta 2 moet je voor elke toepassing een project maken, deze IDE genereert dan tal van andere bestanden, voor kleine toepassingetjes zoals deze in de cursus werkt dit nogal vervelend.
Een andere goede editor is BlueJ, deze editor is specifiek ontworpen voor het Java-onderwijs.
Een handleiding tot het gebruik van BlueJ is ook te vinden op het internet.
Nadat je Java2 1.5 SDK hebt gedownload volg je verder de installatiestappen na het openen van het bestand.
Je moet er wel voor zorgen dat het besturingssysteem van je computer de bestanden die werden meegeleverd in de SDK kan vinden. Daarvoor voeg je de naam van de map die deze bestanden bevat toe aan de PATH-variabele van je systeem, bij een standaard-installatie van bovengenoemde SDK is dit:
C:\jdk1.5.0\bin
Instellen PATH-variabele:
Anciens op Java-gebied zullen zich misschien af vragen of ook de CLASSPATH-variabele moet worden ingesteld. Deze variabele geeft waar waar de veelgebruikte klassebestanden zich bevinden. De interne Java-bibliotheekbestanden zullen standaard gevonden worden, daar de CLASSPATH-variabele tijdens installatie van de JAVA2 SDK deze instellingen regelt. Heb je echter nog andere mappen met zelfgemaakte klassen die je hier wenst op te nemen, dan zal je de CLASSPATH-variabele moeten instellen bij het compileren van je bestanden. Je kan de instellingen voor de CLASSPATH-variabele analoog instellen als de PATH-variabele, je zal de variabele eventueel wel nog zelf moeten toevoegen.
public class app
{
public static void main(String[] args)
{
System.out.println("Groeten van Java");
}
}
Gebruik je een editor met ingebouwde compiler en console, dan kan je deze code hierin uitvoeren.
De zin "Groeten van Java" verschijnt op het scherm.
Gebruik je geen speciale editor, maar heb je de code met bvb kladblok ingegeven, onderneem dan volgende stappen:
De opdracht javac app.java zorgt ervoor dat de Java-compiler, die javac (.exe voor Windows) wordt genoemd, de Java-code omzet in bytecode. De Java-compiler neemt het bestand app.java aan en vertaald de Java-instructies in bytecode. Hierbij wordt een nieuw bestand gecreëerd met de naam app.class. Als er zich fouten voordoen gaat de Java-compiler je daar attent op maken. Wanneer de Java-compiler javac met succes heeft gecompileerd naar bytecode bevat het .class-bestand app.class alles wat de Java Virtual Machine van de computer nodig heeft om objecten van de app-klasse te maken.
Voor het compileren vanaf de opdrachtprompt met de opdracht javac kan je tal van opties instellen. Meer hierover op de website van Sun.
De opdracht java app zorgt ervoor dat het Java-hulpprogramma java (.exe) de JVM feitelijk laat draaien. Het programma wordt uitgevoerd!
Meer over de opdracht java op de site van Sun.
public class app
{
public static void main(String[] args)
{
System.out.println("Groeten van Java");
}
}
De eerste regel geeft aan dat we een nieuwe Java-klasse met de naam app maken:
public class app
{
...
}
De feitelijke implementatie van de klasse staat tussen twee accolades.
Met de volgende regel maken we een methode in de app-klasse:
public class app
{
public static void main(String[] args)
{
System.out.println("Groeten van Java");
}
}
Een methode kan je vergelijken met functies en subroutines uit het gewoon programmeren: het een blok code waaraan je de controle kan doorgeven en die een waarde kan terugleveren.
Methoden bieden een handige manier waarop code in één functionele eenheid kan worden verpakt. Wanneer een methode wordt aangeroepen wordt de code die in de methode opgegeven is uitgevoerd door de JVM.
Hier heeft de methode de naam main, dit is de eerste methode die de JVM zoekt wanneer de toepassing wordt gestart. Wannneer de JVM deze methode vindt geeft de JVM de controle eraan door. De methode main heeft een aantal vereisten:
public class app
{
public static void main(String[] args)
{
System.out.println("Groeten van Java");
}
}
Dit is de regel code die al het werk doet. Hier gebruiken we code die de makers van Java reeds hebben voorgeprogrammeerd om de zin "Groeten van Java" op het scherm te zetten.
Hier wordt meer bepaald de klasse System van het pakket java.lang gebruikt. De klasse System bevat een veld (gegevenslid) met de naam out, en dit veld heeft een methode println. De methode println zorgt voor de eigenlijke weergave van de zin. De zin "Groeten van Java" wordt als argument aan deze methode doorgegeven.
Merk op dat een Java-instructie beëindigd wordt met een punt-komma!
Andere methoden om tekenreeksen naar de console te sturen zijn print en nieuw vanaf versie 1.5 printf.
Code kan soms cryptisch en moeilijk te lezen zijn. Vandaar dat het belangrijk is dat je de code die je schrijft voorziet van het nodige commentaar.
In Java plaats je 1 regel commentaar na //
Een commentaarblok omgeef je met /* en */
Commentaar voor javadoc-informatie plaats je tussen /** en */.
Javadoc stelt de programmeur in staat automatisch een beschrijving van de code te gegerenen in HTML-formaat.
/* ****************************************** * Klasse app * breng tekst op het scherm * ******************************************/ public class app { public static void main(String[] args) { //hier plaatsen we de tekst op het scherm System.out.println("Groeten van Java"); } }
import java.util.Date;
public class datum {
public static void main(String[] args) {
System.out.println("Vandaag:" +new Date());
}
}
import java.util.*;
public class datum {
public static void main(String[] args) {
System.out.println("Vandaag:" +new Date());
}
}
import java.applet.Applet;
import java.awt.*;
public class tekstapplet extends java.applet.Applet {
public void paint(Graphics g) {
g.drawString("Groeten van Java",50,100);
}
}
Standaardapplets zijn gebaseerd op de Applet-klasse die deel uitmaakt van het pakket java.applet. De klasse Applet heeft in principe haar eigen paint-methode, maar we kunnen die methode vervangen door onze eigen paint-methode te definiëren.
De methode paint die we gebruiken in dit voorbeeld is in feite onderdeel van de Java Abstract Windowing Toolkit (AWT), die je in deze cursus vaak zal tegenkomen. De klassen uit het awt-pakket hebben we in deze toepassing geïmporteerd.
Aan de paint-methode wordt een Java-object van de klasse Graphics doorgegeven, dit object wordt in de code g genoemd. Je kan de drawString-methode van dit object gebruiken om de tekst te tekenen. De laatste twee argumenten in de drawString-methode zijn de afstanden in pixels ten opzichte van de linkerbovenhoek van de applet. De waarde 50 is de afstand ten opzichte van de linkerkant, 100 is de afstand ten opzicht van de bovenkant.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Applet HTML Pagina</TITLE>
</HEAD>
<BODY>
<APPLET code="tekstapplet.class"
width="350"
height="200">
</APPLET>
</BODY>
</HTML>
Je kan nu gebruik maken van de appletviewer van Sun, die met Java wordt meegeleverd, om tekstapplet.html te openen geef je dan de volgende opdracht aan de prompt:
appletviewer tekstapplet.html
Je kan de pagina natuurlijk ook openen in een browser die Java ondersteund.
De editor Netbeans IDE zorgt automatisch voor het aanmaken van een HTML-pagina bij het compileren van het .java-bestand.
Zorg ervoor dat je de map met de html-pagina eerst localiseert.
De editor NetBeans bevat templates voor het maken van Java-toepassingen.
Wanneer je een applet maakt met NetBeans hoef je bepaalde codefragmenten dus niet meer in te tikken.
Hier heb ik enkel de aangeduide code ingegeven:
import java.awt.*; /* * tekstapplet2.java * * Created on 18 oktober 2004, 10:32 */ /** * * @author Administrator */ public class tekstapplet2 extends java.applet.Applet { /** Initialization method that will be called after the applet is loaded * into the browser. */ public void paint(Graphics g) { g.drawString("Groeten van Java",50,100); } public void init() { // TODO start asynchronous download of heavy resources } // TODO overwrite start(), stop() and destroy() methods }
import java.awt.*;
import java.awt.event.*;
class AppFrame extends Frame
{
public void paint(Graphics g)
{
g.drawString("Groeten van Java", 50, 100);
}
}
public class tekstvenster
{
public static void main(String[] args)
{
AppFrame f = new AppFrame();
f.setSize(200,200);
f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});
f.show();
}
}
Je ziet een venstergebaseerde toepassing.
Meer hierover volgt later in de cursus.
| Meer tutorials: |
| leer ook: | html | | xhtml | | css | | asp | | asp.net | | c# | | ado.net | | linq | | ajax | | java | | javascript |