Skip to content

Instantly share code, notes, and snippets.

@tripzilch
Created May 26, 2013 18:53
Show Gist options
  • Save tripzilch/5653685 to your computer and use it in GitHub Desktop.
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.
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