Saturday, April 1, 2006

Java tutorial (all Dutch)

Intro|Basics|Elementen|Bouwstenen|Datatypen|Operatoren|Toegangscontrole|Draaiboek|Foutenafhandeling|Objecten|Uitvoeren

De weg naar Java

Introductie

In deze Nederlandstalige Java tutorial wordt uitgelegd hoe het object georiënteerde programmeertaal Java in elkaar steekt. Java is een krachtige platform-onafhankelijke taal dat op praktisch alle gebieden toegepast kan worden. Van mobiele telefoons (Java Micro Edition, Java ME), via computerprogramma's (Java Standard Edition, Java SE) tot grote dynamische webapplicaties (Java Enterprise Edition, Java EE).

Er is bewust gekozen voor het Nederlands als voertaal van deze tutorial, omdat praktisch alle Java tutorials Engelstalig zijn, dat het nogal kansloos zou zijn om daar nog eentje achteraan te gooien. Alle in de tutorial gebruikte termen zijn dan ook wel Nederlandstalig (hoewel hier en daar wellicht wat krom ;) ), maar er worden in de relevante gevallen altijd tussen haakjes de gerelateerde Engelstalige term meegegeven.

Terug naar boven

Kenmerken

Eenvoudig: de taal steekt (achteraf gezien natuurlijk) vrij eenvoudig in elkaar.

Veelzijdig: het kan praktisch overal voor gebruikt worden, van eenvoudige spelletjes voor mobiele telefoons tot krachtige en veilige websites voor het Internetbankieren.

Platform-onafhankelijk: eenzelfde Java applicatie kan op praktisch álle machines uitgevoerd worden, ongeacht het gebruikte hardware en besturingssysteem.

Herbruikbaar: een goede Java applicatie bestaat uit meerdere onderdelen (klassen en methoden) die op zich relatief makkelijk herbruikbaar zijn.

Multithreaded: de onderdelen (klassen en methoden) van een Java applicatie kunnen tegelijkertijd meerdere keren worden aangeroepen en uitgevoerd, in plaats van 1x tegelijk en dat slechts achter elkaar (singlethreaded). Dit is bevorderlijk voor de performance.

Terug naar boven

Werking

Een Java applicatie (.java) moet eerst tot bytecode (.class) worden gecompileerd, voordat het uitgevoerd kan worden. Deze bytecode kan dan worden uitgevoerd door een Java Virtual Machine (JVM). Een JVM kan ook de bytecode opnieuw compileren naar machinecode (Just In Time compilatie, JIT), waardoor het veel sneller uitgevoerd kan worden. Er zijn diverse JVM's beschikbaar voor verschillende platformen. Hierdoor kan precies eenzelfde Java applicatie uitgevoerd worden op praktisch álle machines en besturingssystemen. Een ander voordeel is dat de JVM danwel de JIT compiler geoptimaliseerd kan worden voor specifieke software danwel hardware (Windows, Linux, Solaris, Intel processor, AMD processor, IBM processor, etc).

Terug naar boven

Software

Voordat je Java applicaties op een computer kunt uitvoeren, heb je dus een JVM voor de computer nodig. Je kunt deze downloaden op de website van Sun: Java Standard Edition. Je kunt er o.a. de JRE en de JDK downloaden. De JRE (Java Runtime Environment) is goed genoeg als je alleen maar Java applicaties wilt kunnen uitvoeren. De JDK (Java Development Kit) is nuttig als je ook wilt programmeren in Java. De JDK wordt in geval van Java EE trouwens ook weleens SDK genoemd (Software Development Kit), omdat je daar een complete ontwikkelomgeving en een applicatieserver bij krijgt.

Aangezien je deze tutorial zit te lezen, gaan we ervan uit dat je wil leren om in Java te gaan programmeren, dan kun je het beste de JDK (zonder de NetBeans) downloaden en installeren. Je zou daarna Java kunnen gaan programmeren in een teksteditor, in de commandconsole compileren met javac.exe en uitvoeren met java.exe. Goede teksteditors met highlighters (de bouwstenen van de code worden in kleurtjes weergeven ter bevordering van de leesbaarheid) zijn EditPlus, Notepad++ en UltraEdit. BalusC gebruikt zelf EditPlus, maar Notepad++ is freeware en ook prima om mee te beginnen.

Er zijn echter ook IDE's (Integrated Development Environment) voor Java beschikbaar. Een IDE is een geavanceerde ontwikkelomgeving met een heleboel ingebouwde functies specifiek op de code toegespitst. Met vele shortcuts, code-generators, real-time compilen/uitvoeren, code-formatters, step-by-step debuggers, etcetera, is het ideaal voor de veeleisende Java developer. Veel IDE's zijn kostbaar, zoals Websphere Studio Application Developer, een IDE voor Java EE, waar BalusC op zijn werk veel mee werkt. Echter er zijn ook gratis open-source IDE's voor Java beschikbaar, zoals Eclipse, JBoss, Netbeans IDE, Sun Java Studio Creator. Jboss en Websphere Studio zijn trouwens gebaseerd op de engine van Eclipse.

Terug naar boven

Hello World in Eclipse

Een Hello World applicatie is een stukje code die je bij bij wijze van een eerste oefening kunt schrijven om te kijken hoe de basiscode in elkaar zit en of het werkt. Hieronder staat een voorbeeld van een Hello World Java applicatie:

package test;

// De HelloWorld klasse.
public class HelloWorld {

    // De main() methode.
    public static void main(String[] args) {

        // Schrijf "Hello World" naar de systeem console.
        System.out.println("Hello World");
    }

}

We gaan nu even Eclipse installeren om de Hello World te uitvoeren. Van alle freeware Java IDE's is Eclipse veruit de beste keuze, het is enorm uitgebreid en bij de Java EE versie kun je dankzij de ingebouwde WTP (Web Tools Platform) ook direct Java EE webapplicaties mee ontwikkelen.

Eclipse installeren

  1. Mocht je dat niet al gedaan te hebben, download en installeer de laatste Java SE JDK (let op: de JDK en dus niet de JRE). Neem die ene versie zonder NetBeans en Java EE. Deze tutorial is overigens geschreven ten tijde van Java SE JDK 5.0.
  2. Ga naar de download pagina van Eclipse.
  3. Klik op het linkje achter "Eclipse IDE for Java EE Developers".
  4. Klik daarna op het linkje achter "Download from:" of kies een andere mirror.
  5. Pak de zip uit, je zult een mapje tegenkomen genaamd "eclipse".
  6. Kopieer/verplaats deze map naar jouw Program Files directory (niet noodzakelijk, maar wel handig).
  7. Voer de eclipse.exe uit.
  8. Geef een workspace op (hier worden jouw Java projecten bewaard). Suggestie: \Documenten\Java\Eclipse.
  9. Klik op de welkomstscherm rechtsboven op de gebogen pijl: Go to the workbench.

Hello World Java Applicatie bouwen

  1. Maak een Java Project aan: File - New - Project... - Java Project en klik op Next.
  2. Geef als projectnaam "HelloWorld" op, laat de rest van de velden standaard en klik op Finish. Je zult hierna de vraag krijgen: "Open Associated Perspective?". Klik op Yes.
  3. Rechtsklik op de zojuist aangemaakte project: New - Class.
  4. Kies een package naam, bijvoorbeeld "test" en geef de klasse de naam "HelloWorld". Laat de rest van de velden standaard en klik op Finish.
  5. Neem de Hello World voorbeeldcode over in de zojuist aangemaakte HelloWorld.java klasse en sla deze op.
  6. Voer de Java applicatie uit: Run - Run As - Java Application.
  7. In de systeem console zul je de tekst "Hello World" zien! Zie ook de Screenshot:
    Hello World
Terug naar boven

Eclipse verkennen

Deze IDE kun je gedurende deze tutorial wel blijven gebruiken om even mee te spelen. Theorie is allemaal heel leuk, maar je leert er pas van wanneer je het ook daadwerkelijk in de praktijk toepast. Dus kopieer/plak zoveel mogelijk toepasbare code om deze in de IDE te laten uitvoeren of, veel liever, typ deze zelf over. Je moet het uiteindelijk toch zélf in (uit) je vingers krijgen ;)

Eclipse kent enorm veel handige functies en shortcuts. Ga gerust op verkenning uit via de contextmenu's. Hier worden nog wel enkele "must to know" dingetjes vermeld:

  1. Via Window - Preferences kun je extreem veel opties instellen. Die in de groep "Java" zijn het interessantst. Bijvoorbeeld de Compiler Errors/Warnings.
    Compiler Errors/Warnings
  2. CTRL+spatie in de code levert een dropdown box op waarin alle beschikbare klassen en/of methoden te selecteren zijn. Zodra er maar 1 mogelijkheid is, dan wordt er gewoon automatisch aangevuld. Dit geldt ook voor de zogenaamde "code templates", probeer maar bijvoorbeeld main[CTRL+spatie] binnen een klasse en sysout[CTRL+spatie] binnen een methode. Deze zijn instelbaar via Window - Preferences - Java - Editor - Templates.
    CTRL+Spatie
  3. CTRL+1 in de regel waar een compileerfout (rood onderstreept) of een waarschuwing (geel onderstreept) staat, levert een dropdown box op met alle mogelijke oplossingen. Dezelfde dropdown kun je krijgen wanneer je op het bolletje links naast de regel klikt.
    CTRL+1
  4. CTRL+SHIFT+F formatteert de code netjes volgens de richtlijnen die je via Window - Preferences - Java - Code Style - Formatter kunt instellen.
    CTRL+SHIFT+F
  5. CTRL+SHIFT+O organiseert de imports volgens de richtlijnen die je via Window - Preferences - Java - Code Style - Organize Imports kunt instellen.
    CTRL+SHIFT+O
  6. CTRL+SHIFT+G op een gedeclareerde klasse, methode of variabele zoekt naar referenties van de klasse, de methode danwel de variabele.
  7. ALT+SHIFT+R op een gedeclareerde klasse, methode of variabele biedt de mogelijkheid om deze dynamisch te hernoemen. Hierbij worden dus ook alle referenties hernoemd.
    ALT+SHIFT+R
  8. CTRL+muisklik op een gedeclareerde klasse, methode of variabele gaat direct naar de broncode daarvan. Een kale Eclipse installatie kent de broncode van de JDK nog niet, waardoor je een "Source not found" foutmelding zult krijgen wanneer je een CTRL+muisklik doet op de standaard API van Java, bijvoorbeeld String. Je zult dan via Attach source - External file het bestand src.zip moeten aangeven. Dit hoef je slechts eenmalig te doen. Dit bestand staat normaliter in de installatiedirectory van de JDK. De onderstaande screenshot toont het resultaat van een CTRL+muisklik op het println gedeelte van System.out.println.
    CTRL+klik

Mocht je op een of andere manier de hele Eclipse omgeving (instellingen, voorkeuren, gedragingen, workspace, etcetera) te hebben verkracht, waardoor je naar de vers geinstalleerde staat terugverlangt, verwijder dan de folder genaamd ".metadata" uit de workspace. In eerdergenoemd voorbeeld is dat dus \Documenten\Java\Eclipse\.metadata.

Terug naar boven


In het volgende hoofdstuk wordt het Object Oriented Programming nader uitgelegd: Basics.

Copyright - Niets van deze pagina mag worden overgenomen zonder uitdrukkelijke toestemming.

(C) April 2006, BalusC

No comments: