Inhoudsopgave:
- Hoofdletters plaatsen waar ze thuishoren
- Een switch-statement
- Vergelijking van waarden met een dubbel gelijkteken
- Componenten toevoegen aan een GUI
- Luisteraars toevoegen om gebeurtenissen af te handelen
- De vereiste constructors definiëren
- Niet-statische verwijzingen herstellen
- Binnen een reeks grenzen blijven
- Anticiperen op null-pointers
- Java helpen zijn bestanden te vinden
Video: ? Cara mengatasi insomnia tanpa obat 2024
Vang veelvoorkomende fouten in Java-programmering voordat u ze maakt. Hier is een korte checklist van tien dingen om op te letten in je code.
Hoofdletters plaatsen waar ze thuishoren
Java is een hoofdlettergevoelige taal, dus u moet echt denken aan uw P en Q s - samen met elke andere letter van het alfabet. Hier zijn enkele details waarmee u rekening moet houden bij het maken van Java-programma's:
-
De zoekwoorden van Java zijn allemaal volledig in kleine letters. In een Java if-instructie kan het woord if bijvoorbeeld niet If of IF zijn.
-
Wanneer u namen uit de Java API (Application Programming Interface) gebruikt, moet het geval van de namen overeenkomen met wat in de API wordt weergegeven.
-
U moet er ook voor zorgen dat de namen die u zelf verzonnen, op dezelfde manier worden gekapitaliseerd gedurende uw gehele programma. Als u een variabele myAccount declareert, kunt u er niet naar verwijzen als MyAccount, myaccount of Myaccount. Als u de variabelenaam op twee verschillende manieren kapitaliseert, denkt Java dat u verwijst naar twee totaal verschillende variabelen.
Een switch-statement
doorbreken Als je niet uit een switch-statement komt, krijg je een fall-through. Als de waarde van het couplet bijvoorbeeld 3 is, drukt de volgende code alle drie de regels af: Laatste onthoud, Hij is een lust en heeft geen hersens.
schakelaar (couplet) {case 3: out. print ("Laatste refrein,"); uit. println ("last refrain,"); geval 2: uit. print ("Hij is een pijn"); uit. println ("hij is een pijn,"); geval 1: uit. print ("Heeft geen hersenen,"); uit. println ("has no brain,");}
Vergelijking van waarden met een dubbel gelijkteken
Wanneer u twee waarden met elkaar vergelijkt, gebruikt u een dubbel gelijkteken. De regel
if (inputNumber == randomNumber)
is correct, maar de regel
als (inputNumber = randomNumber)
niet correct is.
Componenten toevoegen aan een GUI
Dit is een constructor voor een Java-frame:
public SimpleFrame () {JButton-knop = nieuwe JButton ("Thank you …" ); setTitle ("… Connie Santisteban en Brian Walls" ); setLayout (nieuwe FlowLayout ()); toe te voegen (toets); knop. addActionListener (deze); setSize (300, 100); setVisible (true);}
Wat u ook doet, vergeet de aanroep van de add-methode niet. Zonder deze oproep ga je naar al het werk om een knop te maken, maar de knop verschijnt niet in je frame.
Luisteraars toevoegen om gebeurtenissen af te handelen
Kijk opnieuw naar de code van de vorige sectie om een SimpleFrame te construeren. Als u de aanroep van addActionListener bent vergeten, gebeurt er niets wanneer u op de knop klikt. Een tweede keer klikken op de knop helpt niet.
De vereiste constructors definiëren
Wanneer u een constructor met parameters definieert, zoals in
openbare temperatuur (dubbel getal)
, maakt de computer niet langer een standaardparameterloze constructor voor u aan. Met andere woorden, u kunt niet langer
Temperatuur kamerTemp = nieuwe temperatuur ();
tenzij u expliciet uw eigen parameterloze temperatuurconstructor definieert.
Niet-statische verwijzingen herstellen
Als u probeert de volgende code te compileren, krijgt u een foutmelding:
klasse WillNotWork {String greeting = "Hello"; public static void main (String args []) {Systeem. uit. println (greeting);}}
U krijgt een foutmelding omdat main statisch is, maar begroeting is niet statisch.
Binnen een reeks grenzen blijven
Wanneer u een array declareert met tien componenten, hebben de componenten indexen 0 tot en met 9. Met andere woorden, als u
int guests [] aangeeft nieuwe int [10];
dan kunt u de componenten van de gastenreeks raadplegen door gasten [0], gasten [1], enzovoort te schrijven, helemaal tot aan gasten [9]. Je kunt geen gasten schrijven [10], omdat de gastarray geen component met index 10 heeft.
Anticiperen op null-pointers
De voorbeelden van dit boek zijn niet geneigd om de NullPointerException te gebruiken, maar in real-life Java-programmering, je ziet die uitzondering de hele tijd. Een NullPointerException komt tot stand wanneer u een methode aanroept die een object zou moeten retourneren, maar in plaats daarvan retourneert de methode niets. Hier is een goedkoop voorbeeld:
importeer statische java. Lang. Systeem. uit; java importeren. io. Het dossier; class ListMyFiles {public static void main (String args []) {File myFile = new File (" windows" ); String dir [] = mijnbestand. lijst(); for (String fileName: dir) {out. println (bestandsnaam);}}}
Dit programma geeft een lijst weer van alle bestanden in de Windows-map.
Maar wat gebeurt er als u windows verandert in iets anders - iets dat niet de naam van een map vertegenwoordigt?
Bestand myFile = nieuw bestand ("& *% $!!" );
Dan retourneert de nieuwe File-aanroep null (een speciaal Java-woord dat nothing betekent), dus de variabele myFile bevat niets. Later in de code verwijst de variabele dir naar niets en mislukt de poging om alle dir-waarden door te lussen. Je krijgt een grote NullPointerException en het programma stort tegen je aan.
Controleer de API-documentatie van Java om dit soort calamiteiten te voorkomen. Als u een methode aanroept die null kan retourneren, voegt u code voor het afhandelen van uitzonderingen toe aan uw programma.
Java helpen zijn bestanden te vinden
U maakt Java-code, let op uw eigen bedrijf, wanneer de computer u een NoClassDefFoundError geeft. Allerlei dingen kunnen fout gaan, maar de kans is groot dat de computer een bepaald Java-bestand niet kan vinden. Om dit te verhelpen, moet u alle planeten correct uitlijnen:
-
Uw projectdirectory moet alle Java-bestanden bevatten waarvan de naam in uw code wordt gebruikt.
-
Als u benoemde pakketten gebruikt, moet uw projectdirectory over de juiste naam beschikken over submappen.
-
Uw CLASSPATH moet correct zijn ingesteld.