"Hé, jonge rekruut, die elke dag een heleboel fouten maakt, zelfs in de eenvoudigste programma's!
"Eh... Hallo, Diego. Tjonge, jij weet echt hoe je mensen moet opvrolijken!"
"Natuurlijk doe ik dat! Leer hoe je moet zeggen wat er gezegd moet worden. Zoals ik al zei, 'elke dag'. Om het beleefder uit te drukken, mijn begroeting betekent "toekomstige succesvolle programmeur, als je het natuurlijk niet verpest ."
"Oooh, dankjewel, mijn meest metalige leraar! .
"Je zult me na deze les dankbaar zijn. Hier ga ik de meest populaire fouten opsommen die door de compiler zijn opgemerkt. En het is jouw taak om te onthouden. Een gewaarschuwd mens is een voorarm.
Een puntkomma vergeten
"De meest voorkomende fout die aspirant-Java-programmeurs maken, is de puntkomma. Of beter gezegd, de afwezigheid ervan op de plaats waar die zou moeten staan."
'De waarheid is... ik heb deze overtreding herhaaldelijk begaan.'
"Elke instructie binnen een methode moet eindigen met een puntkomma. De puntkomma is wat verklaringen of commando's scheidt: zo vertellen we de Java-compiler waar het ene commando eindigt en het volgende begint.
Voorbeelden van fouten:
foute code | Correcte code |
---|---|
|
|
|
|
|
|
Vergeten aanhalingstekens te sluiten
"De op een na meest voorkomende fout voor nieuwkomers in Java is het schrijven van een string in de code en vervolgens vergeten het citaat te sluiten.
Elke letterlijke tekenreeks in de code moet aan beide zijden worden omsloten door dubbele aanhalingstekens ("). Beginnende programmeurs plaatsen heel vaak aanhalingstekens aan het begin van tekst, maar ze vergeten ze aan het einde te sluiten.
foute code | Correcte code |
---|---|
|
|
|
|
|
|
Vergeten een plusteken op te nemen bij het aan elkaar lijmen van strings
"Een andere veelgemaakte fout bij het werken met strings is het vergeten een plusteken te schrijven bij het aan elkaar lijmen van strings. Deze fout komt vooral voor wanneer tekst en variabelen worden samengevoegd in een lange expressie in code.
Hier zijn enkele voorbeelden:
foute code | Correcte code |
---|---|
|
|
|
|
|
|
Vergeten accolades te sluiten
"Dit is een veel voorkomende fout. Er zijn twee situaties waarin dit typisch is:
- Je hebt besloten code ergens vandaan te kopiëren en hebt per ongeluk enkele accolades gemist.
- Je maakt jezelf gewoon niet de moeite om ervoor te zorgen dat elk open haakje gepaard gaat met een sluitend haakje."
"De tweede optie is wat ik doe. Soms laat ik me zo meeslepen dat ik het vergeet!" .
"Om deze fouten te vermijden, wordt het gewoonlijk aanbevolen voor beginnende programmeurs om de afsluitende accolade onder de openingsaccolade te schrijven.
Voorbeelden:
foute code | Correcte code |
---|---|
|
|
|
|
Vergeten haakjes toe te voegen
"Meestal wordt deze fout gemaakt door ontwikkelaars die programmeertalen kennen die in vergelijkbare situaties geen haakjes nodig hebben.
Een mogelijkheid is dat ze gewoon vergeten haakjes aan het einde van een methodeaanroep te plaatsen:
Een andere mogelijkheid is dat ze vergeten de voorwaarde van een verklaring tussen haakjes te zetten if-else
.
Voorbeelden:
foute code | Correcte code |
---|---|
|
|
|
|
main
De methodedeclaratie onjuist schrijven
"Zodra ze de verdomde main
methode verkondigen! Er is waarschijnlijk niets dat nieuwelingen zo laat struikelen als deze armzalige methode. Belangrijk is dat ze altijd verrast zijn en zich afvragen waarom hun programma niet wil starten? En natuurlijk is de programmeur dat ook niet de schuld, maar het programma, de compiler, de codevalidator, de Java-machine, enz. De lijst met zondebokken is eindeloos.
Voorbeelden:
foute code | Uitleg |
---|---|
|
public ontbreekt |
|
static ontbreekt |
|
void ontbreekt |
|
public en static ontbreken |
|
[] ontbreekt |
|
String[] args ontbreekt |
|
We hebben int in plaats vanvoid |
De bestandsnaam is anders dan de klassenaam
"Volgens de Java-standaard moeten alle Java-klassen worden opgeslagen in een bestand met dezelfde naam als de klassenaam. En zoals eerder vermeld, is het hoofdlettergebruik hier van belang:
Bestandsnaam | Naam van de klasse | Opmerking |
---|---|---|
Oplossing.java | Oplossing | Alles is in orde |
Oplossing van .java | Oplossing | De bestandsnaam als overbodige letter 's' |
s oplossing.java | Oplossing | De bestandsnaam begint met een kleine letter |
Oplossing. tekst | Oplossing | De bestandsextensie is .txt in plaats van .java |
Oplossing.java | oplossing | De klassenaam begint met een kleine letter |
"Eigenlijk kunnen er meerdere klassen worden gedeclareerd in een bestand met de extensie .java, maar slechts één daarvan kan het woord public
voor de klassenaam hebben. En dit is de naam die moet overeenkomen met de bestandsnaam.
"Een .java-bestand moet altijd een klasse hebben waarvan de naam hetzelfde is als de bestandsnaam, en die klasse moet de public
modifier hebben. Voorbeeld:
Oplossing.java |
---|
|
"Bovendien kunt u met de Java-taal klassen binnen klassen schrijven. Dit is een andere manier om de bovenstaande beperking te omzeilen. Als een openbare klasse (een klasse met de modifier) wordt public
gedeclareerd in een bestand en dezelfde naam heeft als de bestandsnaam, dan kun je binnen deze openbare klasse zoveel klassen declareren als je wilt. Dat gezegd hebbende, dit zullen niet langer gewone klassen zijn. In plaats daarvan zullen het interne of geneste klassen zijn. Voorbeeld:
Oplossing.java |
---|
|
Vergeten te schrijvenpackage
"Omdat programma's gewoonlijk duizenden klassen hebben, kan het moeilijk zijn om eenvoudige, begrijpelijke en unieke namen voor ze allemaal te vinden. Daarom is het in Java gebruikelijk om klassen in pakketten te groeperen met behulp van het trefwoord. Precies zoals de bestanden zijn gegroepeerd package
. in mappen."
"Ah-ha, dus daarom zou elke klas moeten beginnen met een indicatie van het pakket waartoe het behoort."
"Precies. Hier is een voorbeeld:
Code zonder pakket | Gecorrigeerd voorbeeld |
---|---|
|
|
Vergeten toe te voegenimport
"Als we de klasse van iemand anders in ons programma willen gebruiken, hebben we twee opties: overal in onze code moeten we ook de pakketnaam voor de naam van de klasse schrijven. Als alternatief kunnen we de volledig gekwalificeerde klassenaam met het trefwoord een keer import
schrijven . Voorbeeld:
Zonder import te gebruiken | Importeren gebruiken |
---|---|
|
|
"Beide opties werken, maar als je gewoon Scanner
je code intypt zonder , toe te voegen import
, dan kan de compiler niet begrijpen uit welk pakket hij de Scanner
klasse moet halen, en zal je programma niet compileren."
'Dank je, Diego. Door deze les ga ik beter opletten.'
"Daar had ik op gerekend. Veel succes!"
GO TO FULL VERSION