Created
May 26, 2013 18:53
-
-
Save tripzilch/5653685 to your computer and use it in GitHub Desktop.
Een voorbeeld programma voor het declareren van functies en klasses in Java. Geschreven voor Ebbe van DJO.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class VoorbeeldFunctie { | |
/* De functie die "main" heet is speciaal, die wordt als eerste | |
aangeroepen als je het programma start. */ | |
public static void main(String [] args) { | |
System.out.println("Dit programma heeft een voorbeeldfunctie."); | |
/* Je roept functies op dezelfde manier aan als in Javascript */ | |
groet("Ebbe"); | |
System.out.println("33 keer 61 is: " + vermenigvuldig(33, 61)); | |
/* Een belangrijk onderwerp in Java zijn classes en objecten | |
hier volgen een aantal voorbeelden hoe je die gebruikt. | |
(de declaratie van de klasse staat onderaan) */ | |
// Hiermee maak je een Ding object genaamd "drie": | |
Ding drie = new Ding(3, "DRIE"); | |
// Nu laten we het object iets doen: | |
System.out.println("--- hier vertelt Ding drie iets:"); | |
drie.vertel(); | |
// We maken nog een Ding object, deze genaamd "vijf": | |
Ding vijf = new Ding(5, "VIJF"); | |
// En die laten we ook iets doen: | |
System.out.println("--- hier vertelt Ding vijf iets:"); | |
vijf.vertel(); | |
// Tenslotte laten we Ding object "drie" nog een laatste keer iets zeggen: | |
System.out.println("--- hier vertelt Ding drie nogmaals iets:"); | |
drie.vertel(); | |
// Snap je waarom Ding drie nu ineens VIJF zegt? | |
// Dat komt omdat er maar 1 property Ding.aap bestaat, en toen we Ding vijf maakten, | |
// werd die in de constructor op "VIJF" gezet, en dat geldt voor alle objecten van de klasse Ding. | |
// (Als je dit laatste niet helemaal volgt is dat okee, het is misschien ook een beetje | |
// veel voor in een keer. Ik hoop in ieder geval dat je iets kan met al deze voorbeelden! | |
} | |
/* Hieronder staan twee functie declaraties. Zoals je ziet staat bij deze | |
functies "static", dat moet omdat ze direct vanuit main worden aangeroepen | |
(in plaats van op een object) en main is ook een "static" functie. Dit | |
is een beetje ingewikkeld, maar gelukkig geeft Eclipse aanwijzingen als | |
je dit per ongeluk fout doet. */ | |
// Dit is een functie die geen resultaat teruggeeft. | |
public static void groet(String naam) { | |
System.out.println("Hallo " + naam); | |
} | |
// Dit is een functie die iets uitrekent en dat als resultaat teruggeeft | |
public static int vermenigvuldig(int a, int b) { | |
return a * b; | |
} | |
} | |
/* Hieronder staat een klasse definitie. In Java zet je meestal iedere class in een | |
apart bestand. Als je dat doet, moet je "public class" schrijven in plaats van | |
gewoon "class". | |
Met een klasse kan je objecten maken. De klasse "Ding" kan je dus gebruiken om | |
verscheidene "Ding" objecten te maken. */ | |
class Ding { | |
/* Deze variabelen heten "properties". Het zijn "eigenschappen" van een Ding object. | |
Ieder Ding object heeft zijn eigen eigenschappen. */ | |
int koe, kip; | |
/* ... Tenzij ze als "static" gedeclareerd staan! Alle Ding objecten hebben dezelfde | |
waarde voor "aap", en als je de ene verandert, geldt dat ook voor alle anderen. | |
(en dat is dus wat "static" betekent) */ | |
static String aap; | |
/* Deze functie heet de "constructor", die wordt aangeroepen als je een nieuw Ding | |
object maakt en kan je gebruiken om waarden aan de properties te geven. */ | |
public Ding(int getal, String woord) { | |
this.koe = getal * 3; | |
this.kip = getal * 7; | |
this.aap = woord; /* Let op: de property "aap" is static, dus als deze | |
verandert, verandert ie in alle Ding objecten! */ | |
} | |
/* Een functie in een klasse heet een "methode". */ | |
public void vertel() { | |
System.out.println("koe is " + this.koe); | |
System.out.println("kip is " + this.kip); | |
System.out.println("aap is " + this.aap); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment