Java Fundamentals: Basis Syntaxis Onder de Knie Krijgen
Een Java programma kan gezien worden als een verzameling objecten die communiceren via het aanroepen van elkaars methodes. Laten we kort kijken naar wat class, object, methodes en instance variabelen betekenen.
- Object – Objecten hebben states (toestanden) en behaviors (gedrag). Voorbeeld: een hond heeft states: kleur, naam, ras, en behaviors: staart wagen, blaffen, eten. Een object is een instantie van een class.
- Class – Een class is een sjabloon/blueprint die het gedrag/de state beschrijft dat het object van dat type ondersteunt.
- Methodes – Een methode is eigenlijk een gedrag. Een class kan veel methodes bevatten. Hierin wordt logica geschreven, data gemanipuleerd en acties uitgevoerd.
- Instance Variabelen – Elk object heeft zijn unieke set instance variabelen. De state van een object wordt gevormd door de waarden toegewezen aan deze variabelen.
Eerste Java Programma
Een simpele code die Hello World print:
Voorbeeld
public class MyFirstJavaProgram {
/* Dit is mijn eerste java programma.
* Dit print 'Hello World' als output */
public static void main(String []args) {
System.out.println("Hello World"); // print Hello World
}
}
Hoe het bestand op te slaan, compileren en uitvoeren:
- Open Kladblok en voeg de code toe.
- Sla op als:
MyFirstJavaProgram.java. - Open opdrachtprompt, ga naar de map (bijv. C:\).
- Typ
javac MyFirstJavaProgram.javaen druk Enter om te compileren. Bij geen fouten gaat de prompt naar de volgende regel. - Typ
java MyFirstJavaProgramom te draaien. - Je ziet
Hello Worldin het venster.
Output
C:\> javac MyFirstJavaProgram.java C:\> java MyFirstJavaProgram Hello World
Basis Syntaxis
Belangrijke punten voor Java programma's:
- Hoofdlettergevoeligheid – Java is case sensitive: Hello en hello zijn anders.
- Class Namen – Eerste letter hoofdletter. Bij samengestelde namen: elke binnenste woord begint met hoofdletter. Voorbeeld: class MyFirstJavaClass.
- Methode Namen – Starten met kleine letter. Bij samengestelde namen: elke binnenste woord hoofdletter. Voorbeeld: public void myMethodName().
- Bestandsnaam – Moet exact overeenkomen met de class naam (case sensitive) en eindigen op
.java. Voorbeeld: classMyFirstJavaProgram→ bestandMyFirstJavaProgram.java. Als geenpublicclass, mag bestandsnaam afwijken. - public static void main(String args[]) – Verwerkingsstartpunt van elk Java programma; verplicht.
Java Identifiers
Namen voor classes, variabelen, methodes heten identifiers.
- Moeten beginnen met letter (A-Z, a-z), $ of _ .
- Na eerste karakter: willekeurige combinatie.
- Reserved keywords mogen niet als identifier.
- Case sensitive.
- Geldig:
age, $salary, _value, __1_value. - Ongeldig:
123abc, -salary.
Java Modifiers
Als andere talen kun je classes, methodes, etc. wijzigen met modifiers. Twee categorieën:
- Access Modifiers – default, public, protected, private
- Non-access Modifiers – final, abstract, strictfp
Details volgen in de volgende sectie.
Java Variabelen
Typen variabelen in Java:
- Lokale Variabelen
- Class Variabelen (Static Variables)
- Instance Variabelen (Non-static Variables)
Java Arrays
Arrays zijn objecten die meerdere variabelen van hetzelfde type opslaan. Een array is zelf een object op de heap. Declaratie, constructie, initialisatie volgen in komende hoofdstukken.
Java Enums
Enums (Java 5.0) beperken een variabele tot een paar vooraf gedefinieerde waarden. Vermindert bugs.
Voorbeeld: een frisdrankshop waar glasgrootte beperkt is tot small, medium, large.
Voorbeeld
class FreshJuice {
enum FreshJuiceSize { SMALL, MEDIUM, LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest {
public static void main(String args[]) {
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM;
System.out.println("Size: " + juice.size);
}
}
Output
Size: MEDIUM
Let op – Enums kunnen apart of binnen een class gedeclareerd worden. Methodes, variabelen, constructors kunnen in enums gedefinieerd worden.
Java Keywords
Gereseerveerde woorden die niet als constant, variabele of identifier mogen worden gebruikt:
| abstract | assert | boolean | break |
| byte | case | catch | char |
| class | const | continue | default |
| do | double | else | enum |
| extends | final | finally | float |
| for | goto | if | implements |
| import | instanceof | int | interface |
| long | native | new | package |
| private | protected | public | return |
| short | static | strictfp | super |
| switch | synchronized | this | throw |
| throws | transient | try | void |
| volatile | while |
Comments in Java
Java ondersteunt single-line en multi-line comments zoals C/C++. Alles in comments wordt genegeerd door de compiler.
Voorbeeld
public class MyFirstJavaProgram {
/* Dit is mijn eerste java programma.
* Print 'Hello World' als output
* Voorbeeld van multi-line comments. */
public static void main(String []args) {
// Single line comment
/* Ook single line comment. */
System.out.println("Hello World");
}
}
Output
Hello World
Lege Regels Gebruiken
Een regel met alleen witruimte (mogelijk met comment) is een blank line; Java negeert het volledig.
Inheritance (Erfelijkheid)
In Java kunnen classes afgeleid worden van andere classes. Als je een nieuwe class nodig hebt en er bestaat al een class met benodigde code, kun je je nieuwe class afleiden van de bestaande. Hiermee hergebruik je velden en methodes zonder herschrijven. De bestaande class is de superclass, de afgeleide de subclass.
Interfaces
Een interface is een contract tussen objecten over hoe te communiceren. Interfaces spelen een cruciale rol bij erfelijkheid. Een interface definieert methodes die een subclass moet gebruiken, maar de implementatie is volledig aan de subclass.
Wat Volgt?
De volgende sectie behandelt Objects en Classes in Java. Aan het einde heb je een duidelijk beeld van wat objects en classes zijn.
Java
- C-basissyntax: Tokens, structuur en puntkomma's
- C# Fundamentals: Basis Syntaxis & OOP Concepten
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java instanceof operator: een uitgebreide gids
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen