Inhoudsopgave:
- Hoofdletters plaatsen waar ze horen
- Een switch-statement
- Wanneer u twee waarden vergelijkt, gebruikt u een dubbel gelijkteken. De regel
- U wilt weten wanneer de gebruiker op een widget klikt, wanneer een animatie eindigt, of wanneer er iets anders gebeurt, dus u maakt luisteraars:
- NullPointerException
- -element toevoegt aan Android Manifest van de app
- -element toevoegen in de
Video: Learn Java Programming with Beginners Tutorial 2024
Iedereen maakt fouten. Het is een feit van het leven. Als u echter de adviezen hier opvolgt, hoeft dit geen enkel feit te zijn van uw Java-programmering.
Hoofdletters plaatsen waar ze horen
Java is een hoofdlettergevoelige taal, dus u moet echt denken aan uw p s en q s - samen met elke andere letter van het alfabet. Hier zijn enkele concepten 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 bijvoorbeeld, kan het woord if niet If of IF zijn. - Wanneer u namen uit de Application Programming Interface (API) van Android gebruikt, moet de naam van de naam overeenkomen met wat in de API wordt weergegeven.
- De namen die u zelf verzonnen, moeten gedurende het hele programma op dezelfde manier worden geactiveerd. Als u een
myAccount
variabele declareert, kunt u er niet naar verwijzen alsMyAccount
,mijn account
ofMyaccount
. Als u de variabelenaam op twee verschillende manieren kapitaliseert, denkt Java dat u verwijst naar twee totaal verschillende variabelen.
Een switch-statement
doorbreken Als u niet uit een
switch
-instructie komt, raakt u doorgevallen. Als de waarde van
rol
bijvoorbeeld
7
is, worden in de volgende code alle drie de woorden afgedrukt:
win
,
doorgaan
en > verliest
:
switch (rol) {
case 7:
textView. setText ("win");
case 10:
case 12:
textView. setText ("verliezen");
}
Vergelijking van waarden met een dubbel gelijkteken
Wanneer u twee waarden vergelijkt, gebruikt u een dubbel gelijkteken. De regel
if (inputNumber == randomNumber)
is correct, maar de regel
als (inputNumber = randomNumber)
niet correct is.
Luisters toevoegen om gebeurtenissen af te handelen
U wilt weten wanneer de gebruiker op een widget klikt, wanneer een animatie eindigt, of wanneer er iets anders gebeurt, dus u maakt luisteraars:
openbare klasse MainActivity breidt activiteit
uit OnClickListener, AnimationListener
{ …
openbare inhoud onClick (View view) {
…
}
openbare inhoud onAnimationEnd (Animation animation) {
…
} < Wanneer u luisteraars maakt, moet u onthouden om de luisteraars in te stellen:
ImageView-widget = nieuwe ImageView (this);
widget.
setOnClickListener
(this);
animatie.
setAnimationListener
(this); … Als u de aanroep van
setOnClickListener
bent vergeten, gebeurt er niets wanneer u op de widget klikt.Een tweede keer klikken op de widget helpt niet.
De vereiste constructors definiëren
Wanneer u een constructor met parameters definieert, zoals in
public Temperature (double number)
Java maakt niet langer een standaardparameterloze constructor voor u aan. Met andere woorden, u kunt niet langer
Temperature roomTemp = new Temperature () aanroepen;
tenzij u expliciet uw eigen constructor zonder parameters
Temperatuur
definieert.
Niet-statische verwijzingen herstellen
Als u probeert de volgende code te compileren, krijgt u een foutmelding:
klasse WillNotWork {
String greeting = "Hallo";
static void show () {
textView. setText (groet);
}
}
U krijgt een foutmelding omdat de
show
-methode statisch is, maar
-groet
niet statisch is.
Binnen een array blijven binnen een bereik
Wanneer u een array met tien componenten declareert, hebben de componenten indexen 0 tot en met 9. Met andere woorden, als u
int guests [] = nieuw int [10];
u kunt de componenten van de array
guests
raadplegen door
gasten [0]
,
gasten [1]
, enzovoort te schrijven, helemaal tot
gasten [9]
. U kunt
gasten [10]
niet schrijven, omdat de
gasten
-array geen component met index 10 heeft.
Anticiperen op null-aanwijzers
A
NullPointerException
komt tot stand wanneer u een methode oproept voor een uitdrukking die geen "legitieme" waarde heeft. Hier is een voorbeeld:
openbare klasse MainActivity breidt AppCompatActivity uit {
TextView-tekstView;
@Override
beschermde ongeldig onCreate (bundel savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (r.lay-out.activiteit_hoofd);
// U vergeet de regel findViewById.
}
openbare inhoud onButtonClick (weergave weergeven) {
tekstweergave. setText ("Hello");
}
}
In Java heeft een verwijzingstype-variabele die nergens naar verwijst de waarde
null
. In dit voorbeeld is de waarde
tekstweergave
van de variabele
null
.
U kunt de
setText
-methode niet roepen op de
null
-waarde. U kunt trouwens geen methode aanroepen met de waarde
null
. Wanneer Java
tekstweergave probeert uit te voeren. setText ("Hallo")
, de app crasht. De gebruiker ziet een
toepassing die het
-bericht heeft gestopt. Als u de app test met Android Studio, ziet u NullPointerException in het paneel Logcat.
Als u dit soort calamiteiten wilt vermijden, moet u twee keer nadenken over elke aanroep van een methode in uw code. Als de expressie vóór de punt mogelijk
null
is, voeg dan exception-handling code toe aan uw programma:
public void onButtonClick (View view) {
try {
textView. setText ("Hello");
} catch (NullPointerException e) {
Toast. makeText (dit: "De app is hersteld van een fout.",
Toast. LENGTH_LONG). laten zien();
}
}
Machtigingen gebruiken
Sommige apps hebben expliciete rechten nodig. Sommige apps praten bijvoorbeeld via het internet met de servers van Twitter. Dit werkt niet, tenzij u een
-element toevoegt aan Android Manifest van de app
.xml
bestand:
Als u vergeet het element
toe te voegen aan uw
AndroidManifest. xml
bestand, kan de app niet communiceren met de servers van Twitter. De app mislukt zonder een nuttig foutbericht weer te geven. Jammer!
De activiteit niet gevonden
Als u een tweede activiteit voor uw app aanmaakt, moet u een nieuw
-element toevoegen in de
AndroidManifest van de app. xml
file. Het element kan zo eenvoudig zijn als
, maar in de meeste gevallen is het element iets gecompliceerder.
Als u dit
-element niet toevoegt, kan Android de klasse
MySecondActivity
niet vinden, ondanks de
MySecondAcitivity. java
bevindt zich in de projectmap van de app. Uw app loopt vast met een
ActivityNotFoundException
.
En dat maakt het verschil.