De grote XBW Java Tutorial

Discussie in 'PC, Handheld & Algemeen' gestart door Modder-Eter, 4 feb 2009.

  1. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.606
    Leuk Bevonden:
    8.734
    [​IMG]

    De grote XBW Java Tutorial​

    AKA de 'ik wil graag java leren' topic

    Hoe en wat?

    Eerst een kleine introductie over dit onderwerp. Ik denk dat de titel genoeg zegt. Dit is een plek waar een groepje toegewijde mensen de programmeertaal Java kan leren, onder leiding en met tutorials van ondergetekende. Ik heb een aantal concepten bedacht die uitvoerbaar zijn, geinspireerd door wat werk van anderen, waarvan een een set wekelijkse Java tutorials zijn geschreven door mijzelf. Hierdoor kan ik niet alleen een aantal mensen die het willen leren helpen dit doel te bereiken, maar ook mezelf nog beter trainen de taal te beheersen. Door tutorials te schrijven, in het Nederlands, kan ik leren beter de begrippen te beheersen dan ik al doe, ter voorbereiding van een bepaalde certificering die ik heel binnenkort wil halen.


    Wat is Java?

    Java is een objectgeoriënteerde programmeertaal. Historisch gezien is Java een platformonafhankelijke taal die qua syntaxis grotendeels gebaseerd is op de (eveneens objectgeoriënteerde) programmeertaal C++. Java beschikt echter over een uitgebreidere klassenbibliotheek dan C++.

    De ontwikkelaars van de taal Java - de 'werknaam' was Oak - waren zo verzot op het stimulerende middel koffie dat ze hun nieuwe taal naar hun favoriete soort genoemd hebben.

    Java ontstond begin jaren '90 in een klein dochterbedrijf van Sun Microsystems onder leiding van James Gosling. Dat bedrijfje, First Person (met onder meer Arthur van Hoff en Patrick Naughton), had als opdracht: "make something cool". In de beginjaren richtte het bedrijfje zich op software voor settop-boxen. Toen enkele onderhandelingen op het nippertje mislukten begonnen ze aan Java. De werknaam Oak werd gekozen toen men naar buiten keek bij het zoeken naar een naam, en daar een eik (Engels: Oak) zag staan. Er bleek echter al een programmeertaal met die naam te bestaan.

    Na studie bleek dat mensen geïnteresseerd zijn in nieuwe zaken die iets met eten te maken hebben of hen aan eten doen denken. Om deze nieuwe taal te doen aanslaan hebben de ontwikkelaars besloten de naam te kiezen van hun populaire Java Koffie. Java is een koffiesoort uit Indonesië. Later bouwden ze voort op deze terminologie en introduceerden ze JavaBeans (bonen) en jar-archieven (Java ARchive) (een jar is een pot).

    Aanvankelijk wilde men Java promoten als programmeertaal voor allerhande elektronische apparaten, zoals televisies, afstandsbedieningen en koelkasten. Maar toen het world wide web meer en meer aan populariteit won, bedacht Sun dat ze hun (toen nog steeds niet al te populaire) taal goed konden gebruiken in een webomgeving. Dankzij de open specificatie en de mogelijkheid om een Javaprogramma als applet in een webpagina in te bedden (ook wel "embedden" genoemd) was de hype al snel gecreëerd.

    Het gebruik van Java voor kleine apparaten werd korte tijd later toch gerealiseerd met het uitbrengen, in 1997, van de Java Card technology, waarmee chipkaarten in Java geprogrammeerd kunnen worden. Deze techniek werd al gauw na de introductie in de GSM-wereld geadopteerd voor gebruik in de SIM-kaart. Het blijkt aan te slaan en in 2005 wordt deze Java-techniek in meer dan 80% van de uitgegeven SIM-kaarten toegepast.

    De volgende generatie Java bood vervolgens de mogelijkheid om Javaprogrammatuur op servers zelf uit te voeren (Engels: 'server-side'). Dit gebeurt in de vorm van servlets, Enterprise JavaBeans en Java Server Pages. Met name op dit gebied heeft Java de afgelopen jaren zijn kracht bewezen en wordt de taal gezien als een belangrijke omgeving voor webapplicaties. Zie ook Java 2 Enterprise Edition.

    Sterk in opkomst is de Java-versie die bedoeld en geschikt is voor apparatuur met een beperkte verwerkingscapaciteit, zoals PDA's, mobiele telefoons en — eindelijk — de settopbox. Zie hiervoor Java 2 Micro Edition.

    Op 13 november 2006 gaf Sun delen van Java vrij als opensourcesoftware, onder de GNU General Public License (GPL). Op 8 mei 2007 gaf Sun de laatste delen van Java vrij onder de GPL, op enkele kleine gedeeltes na waar Sun niet het auteursrecht op heeft.


    Maar eerst...


    Het hoe en waarom van deze tutorial is nu wel duidelijk. Deze thread dient echter alleen maar om te peilen of er interesse is voor een dergelijk initiatief. Nu weet ik dat we op XBW zijn en er hier een stuk minder Computer Science-gerelateerd publiek ronddwaalt, daarom ook het idee van deze thread. Indien er genoeg interesse is (8+ mensen), dan zal ik (hopelijk) deze week of volgende week van start gaan.


    Voor wie?

    Deze aankomende tutorialthread is voor de geinteresseerde, punt. Er zijn overigens wel een paar eisen aan deelname:

    • Degene moet een redelijke motivatie hebben
    • Dit is gericht op de echte beginners, dus helaas voor de wat meer advanced Java users
    • Serieus zijn

    Dat lijken me niet al te zware eisen (alhoewel de eerste vaak nog wel eens een probleem kan zijn, zelfs in mijn geval).


    De tutorials:


     
  2. Pegas

    Pegas XBW.nl VIP XBW.nl VIP

    Berichten:
    8.799
    Leuk Bevonden:
    22
    Prachtig initiatief :thumbs:.

    Maar een vraagje: ga je je focussen op "office" applicaties of op games (dus grafisch gericht)? En welke IDE ben je van plan te gaan gebruiken?
     
  3. Gerjan

    Gerjan XBW.nl VIP XBW.nl VIP

    Berichten:
    6.685
    Leuk Bevonden:
    221
    Java wordt nou niet erg veel gebruikt voor games..

    Ik heb java colleges gehad. Maar kan er nog steeds niks van. Zelfs java tentames waarbij met pen en papier programma's en uml's geschreven moesten worden.. Enorm slechte lesmethodes gehad waardoor ik er echt niks van geleerd heb..
     
    Laatst bewerkt: 4 feb 2009
  4. Danger

    Danger XBW Groentje

    Berichten:
    2.146
    Leuk Bevonden:
    0
    Ik heb zeker interesse. Wil graag een programmeertaal leren, weet alleen nooit waar te beginnen. Als jij duidelijke hulp/ondersteuning/goede tutorials voor beginners kan leveren dan wil ik daar heel graag gebruik van maken :)!
     
  5. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.606
    Leuk Bevonden:
    8.734
    Als IDE ben ik zelf voorstander van Eclipse, deze wil ik dan ook in de eerste les gaan uitleggen.

    Echte focus ligt er momenteel nog niet. Het is voor de totale beginner, waardoor de focus voornamelijk op de console applicaties ligt. Ik zal hierbij wel wat leuke game-geörienteerde opdrachten maken, aangezien die meestal het leukst worden gevonden. Voorlopig is het mijn idee om de gebruikers de basis te leren en daarna misschien verder.
     
  6. R-Y

    R-Y let's pop

    Berichten:
    1.684
    Leuk Bevonden:
    4
    Schrijf me in!

    Waarom: Wil nog altijd verder komen met website's behalve HTML en CSS.
     
  7. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.606
    Leuk Bevonden:
    8.734
    Deze tutorial gaat in zijn huidige vorm nog niet over implementatie op websites, helaas.

    Hier beginnen we bij het begin der beginnen voor het maken van applicaties: De console (Dat mooie zwarte scherm/command line prompt)

    Het neemt dus een iets andere richting dan jij verwacht, gok ik.
     
  8. Gerjan

    Gerjan XBW.nl VIP XBW.nl VIP

    Berichten:
    6.685
    Leuk Bevonden:
    221
    Ik denk dat R-Y aan javascript dacht :)

    Ik heb wel interesse, maar alleen het installeren van al die troep is al is zo vervelend.

    Hello World!
     
  9. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.606
    Leuk Bevonden:
    8.734
    Met Eclipse valt het wel mee ;)
     
  10. Gerjan

    Gerjan XBW.nl VIP XBW.nl VIP

    Berichten:
    6.685
    Leuk Bevonden:
    221
    Ok, ik zal het blijven volgen :)
     
  11. de bengel

    de bengel Holy Fuck-nuts!

    Berichten:
    609
    Leuk Bevonden:
    0
    Ik heb een paar vragen betreft je geweldige inititief:
    - Wat kan je met Java als je deze cursus hebt afgerond, of anders gesteld welke programma's kan je het toepassen (zoals bijv. VBa in Office)?
    - Ik ken de programmeertalen Delphi(object-pascal) en VisualBasic, lijkt Java hier op?
     
  12. Lenny-t

    Lenny-t Melted Forest XBW.nl VIP

    Berichten:
    12.445
    Leuk Bevonden:
    79
    Doe je ook cursussen PHP? 8)
    Java kan ik al... tenminste, heb het 2jaar geleden voor het laatst aangeraakt.
     
  13. Distoration

    Distoration Da diii

    Berichten:
    3.115
    Leuk Bevonden:
    32
    het lijkt me best interesant maar ik vraag me af of ik er iets mee kan
     
  14. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.606
    Leuk Bevonden:
    8.734
    De eerste tutorial is ondertussen in de maak en zal hier zo spoedig mogelijk worden gepost. Ik zal elke tutorialpost linken in de startpost, zodat deze makkelijk terug te vinden is.
     
  15. Lenny-t

    Lenny-t Melted Forest XBW.nl VIP

    Berichten:
    12.445
    Leuk Bevonden:
    79
    Ik ga je volgen M-E. Ik zie het als een opfriscursus :)
    (als je hierna maar PHP voor dummies gaat doen, want daar ben ik wél een dummie in:+)

    /Mod Maar daar ben ik zelf ook dummie in :+
     
  16. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.606
    Leuk Bevonden:
    8.734
    [​IMG][​IMG]

    Tutorial 1 deel 1: Eclipse en de eerste kleine stap


    Welkom bij de eerste tutorial over de wondere wereld van Java en het programmeren. In deze eerste les zal ik uitleggen wat de opbouw van de serie tutorials zal zijn en uitleggen hoe we Java een Java programma kunnen schrijven met behulp van Eclipse. Het zal een heel simpel programma zijn, dus wees maar niet bang!

    De opbouw van de serie tutorials

    De huidige opbouw van de serie tutorials is nog ruw, maar kan ik hier alvast wel vermelden. Zoals ik al eerder zei gaan we vandaag aan de slag met het installeren van Java en een eerste programma schrijven. De volgende keer staan datatypen op het programma. Daarna volgt een tutorial over operators en hun gebruik. De vierde tutorial zal het idee van flow control en de toepassing uitleggen. Hierna komen we nog wat terug op de datatypen door te kijken naar wat complexere “datatypen”. Hierop volgt misschien wel het leukste deel van de taal: Classes en Objecten. In deze tutorial leren we hoe we de typische OOP (Object-Oriented Programming) structuur van java kunnen gebruiken. Als laatste wil ik dan nog een stuk uitleggen over een aantal complexere en belangrijke OOP begrippen en een klein stukje over Swing, Java's manier om vensters en schermen te maken.

    Momenteel is dit de opbouw van de serie tutorials. Zoals jullie zien gaat het niet extreem diep in op de vele moeilijke aspecten van het programmeren, maar is het voldoende voor een goede basis waarmee al veel leuke en interessante programmaatjes gemaakt kunnen worden.

    Ik ben momenteel nog op zoek naar een gratis ebook dat mijn opbouw van Java volgt ter ondersteuning van het leerproces. Zodra ik er een heb gevonden die voldoet aan de eisen laat ik het weten door middel van een mooie post. Maar genoeg gepraat, laten we aan de slag gaan!

    Maar eerst nog even iets over Java en programmeren in het algemeen...

    Jullie dachten zeker al dat we aan de slag gingen, he? Niet helemaal goed. Eerst wil ik nog even wat over Java en programmeren vertellen dat het zwoegen door deze lessen een stuk makkelijker maakt.

    Programmeertalen deelt men over het algemeen in van low-level tot high-level. Wat betekent dit nu eigenlijk? Laten we daarvoor een stukje geschiedenis bekijken:

    Als men vroeger, toen de computers veel groter maar minder krachtig waren, de machine iets wilde laten doen moest men dit in de machinetaal van de computer overbrengen. Dit houdt in dat de toenmalige programmeurs in series van enen en nullen de computer iets konden laten doen. Tegenwoordig werkt de ultieme basis van de computer nog steeds zo, maar nu hoeven wij de computer niet meer met de hand deze enen en nullen door te geven. Dit komt omdat men later de programmeertalen in het leven hebben geroepen om het de gebruikers, die toen nog allemaal technici waren, makkelijker te maken de computers opdrachten te geven. Een van de eerste was assembly. Assembly is een low-level programmeertaal die nauwelijks meer dan een symbolische weergave van machinetaal is. Bij deze taal is het zo dat iedere regel van een assembly-instructie naar een enkele machinecode-instructie wordt vertaald, waarbij de vertalende assembler (het programma dat assembly naar machinetaal vertaalt) nog wel wat ondersteuning biedt in de vorm van symbolische namen voor geheugenlocaties die gebruikt worden voor de opslag van variabelen en labels voor sprongopdrachten in plaats van absolute of relatieve adressen. Je zal er nu waarschijnlijk wel achter zijn wat een low-level programmeertaal nu eigenlijk inhoudt: Een taal die dicht bij de oorspronkelijke machinetaal opereert. Dit heeft zowel voor als nadelen. Zo zijn de programma's die in deze talen geschreven zijn heel snel, aangezien ze al heel dicht bij de oorspronkelijke vorm liggen die de computer begrijpt en dus bijna niet vertaald hoeven te worden door een zogenaamde compiler. Een nadeel is dat het moeilijk te begrijpen is, omdat de instructies ver van de normale menselijke taal af liggen.

    [​IMG]

    Nu zijn er in de tussentijd veel verschillende talen verschenen (zoals op de figuur te zien is): De een low-level, de ander high-level en weer een ander een combinatie van de twee. Een voorbeeld van de laatste is de taal C, waar veel dingen als geheugen zelf nog beheerd moeten worden. Daarnaast zijn er veel verschillende soorten talen verschenen in de vorm van onder andere procedurele en object-geörienteerde talen. De laatste is waar wij ons mee gaan bezig houden in de vorm van Java en daarom zal ik me verder ook niet uitweiden over de ideeën achter de andere soorten programmeertalen. Voor wie toch geïnteresseerd is in de achtergrond hiervan zijn google en wikipedia goede vrienden.

    Bijna alle talen maken gebruik van een compiler. Een compiler is een programma dat de door de mens geschreven code omzet naar de machinetaal die de computer begrijpt.

    Zoals bekend gaan wij ons bezig houden met Java. Java is een typische high-level object-georiënteerde taal. Het is high-level omdat het concepten gebruikt die dicht bij de menselijke gedachtegang staan. Maar wat houdt dan het object-geörienteerde deel van Java in? Dit is een belangrijk concept dat ik hier alvast een klein stukje zal uitweiden, zodat de eerste stappen in Java soepel zullen verlopen.

    Het idee achter object-geörienteerde talen is simpel. Zoals de naam al zegt beschikken we over een aantal, al dan niet zelf gemaakte, objecten die met elkaar kunnen communiceren. Op deze manier kunnen we een programma veel makkelijker modelleren naar de werkelijkheid. Een voorbeeld dat we ook later zullen gaan implementeren is een bankrekening. Er bestaat een object Bankrekening, de gebruiker of een ander object kan met dit object communiceren om bepaalde interacties te veroorzaken. Zo kan je bijvoorbeeld, net als bij een echte rekening, de opdracht geven geld op te nemen of geld te storten. Dit klinkt allemaal erg vaag, maar in de loop van de serie zal het allemaal duidelijk worden.

    Maar waarom nou dit verhaal? Java is als een van de weinige talen volledig object-georiënteerd. Zelfs bij de simpelste programma's maak je al gebruik van objecten, in tegenstelling tot verschillende andere talen, zoals C++. Het hoe en wat van dit zal ik kort uitleggen bij de maak van ons eerste kleine programmaatje.

    Waarom Java?

    Er zijn verschillende redenen te noemen waarom men Java zou moeten gebruiken. De voornaamste is eigenlijk wel dat de taal platform independent is. Dit houdt in dat je code op ieder OS, van Windows tot MacOS, kan draaien mits Java hiervoor geïnstalleerd staat. Hoe kan dit, vraag je je af?

    [​IMG]

    Java werkt met een programma dat de Java Virtual Machine wordt genoemd. Het idee hierachter is dat in tegenstelling tot de meeste programmeertalen, die direct worden gecompileerd in de machinetaal voor de desbetreffende OS en processor, een tussenstap maakt. De Java compiler zet de code namelijk om in een speciale file genaamd 'class-file'. Deze file bevat iets soortgelijks als machinetaal dat door de Virtual Machine gelezen kan worden. Deze Virtual Machine gedraagt zich al een soort virtuele processor die Java 'class-files' kan lezen. In werkelijkheid zet deze virtual machine deze code dan in real-time om naar machinecode voor het OS en de processor die jij hebt. Het plaatje hierboven verduidelijkt dit concept. Wat dit uiteindelijk oplevert is dat een java 'class-file' op elk systeem met elk OS met de Virtual Machine kan draaien zonder aanpassingen in de code te maken. Dit kan met een directe compilatie niet. Daar zijn aanpassingen in de code en hercompilatie nodig om het draaiende te krijgen op andere systemen


    Deel 2 van tutorial 1 volgt snel. Daarin eindelijk aan de slag :)
     
  17. Gerjan

    Gerjan XBW.nl VIP XBW.nl VIP

    Berichten:
    6.685
    Leuk Bevonden:
    221
    model view controller! 8)
     
  18. Lenny-t

    Lenny-t Melted Forest XBW.nl VIP

    Berichten:
    12.445
    Leuk Bevonden:
    79
    Vervelend. Dan moet Jorrit dat maar gaan doen \o/
     
  19. Nitram

    Nitram BiA!

    Berichten:
    1.501
    Leuk Bevonden:
    0
    Erg vet, zal zeker lezen.

    Heb namelijk pas geleden nog een project gedaan waar we een programma moesten maken met JAVA.
     
  20. mattiejj

    mattiejj Registered Muser

    Berichten:
    2.371
    Leuk Bevonden:
    15
    het is misschien de domste vraag ever, maar waar maak je het mee? en wat heb je precies allemaal nodig?
     

Deel Deze Pagina