"Amigo, ik benijd je. Nieuwe dingen leren is zo geweldig! En vandaag wacht je een nieuw en interessant onderwerp - letterlijke teksten."
"Blijkbaar zou ik moeten zeggen dat ik de gelukkigste robo-student ter wereld ben, Rishi. Nou, ik ben klaar om de nieuwe kennis op te doen!"
"Laten we er dan meteen mee aan de slag gaan. Literals zijn specifieke gegevens die rechtstreeks in de code van een programma zijn geschreven. We hebben het niet over zomaar gegevens. We hebben het alleen over primitieve typen en strings.
Stel dat je deze code hebt:
Code | Letterlijke tekens |
---|---|
|
|
"De letterlijke waarden in deze code zijn het getal 5 , het getal 10 en de string ' Sum = '.
Integer letterlijke woorden
"In Java heeft alles, inclusief literals, een type. Alle letterlijke gehele getallen (integers) in code zijn ints . Het int-type is het standaard Java integer-type."
"Ik ken dit type. Ik heb het gebruikt."
"Herinner je je naast int nog andere typen gehele getallen? Sommige die minder ruimte in het geheugen innemen?"
"Natuurlijk! Byte en kort."
"Dat zijn degenen. Dus als je in je code besluit een geheel getal letterlijk toe te wijzen aan een variabele van het type byte of short, zullen er geen problemen zijn. Het belangrijkste is dat de letterlijke waarde binnen het bereik van waarden ligt dat de type variabele kan worden opgeslagen. De Java-compiler is slim genoeg om te begrijpen dat aan een bytevariabele het gehele getal letterlijk 100 kan worden toegewezen.
Voorbeelden:
Code | Beschrijving |
---|---|
|
Dit zal prima compileren. |
|
Dit zal prima compileren. |
|
Er treedt een compilatiefout op, omdat de maximale bytewaarde 127 is. |
"Hoe zit het met het lange type?"
"We kunnen ook letterlijke tekens van dit type in onze code schrijven. Voeg hiervoor de Latijnse letter 'L' of 'l' toe aan het einde van het gehele getal.
Voorbeelden:
Code | Beschrijving |
---|---|
|
Dit zal prima compileren. |
|
Compilatiefout: 3 miljard is te groot voor een int letterlijk. |
|
Compilatiefout: de letterlijke waarde is een lange, maar de variabele is een int. Bovendien is 3 miljard meer dan de maximale int. |
"Is het je opgevallen hoe moeilijk het is om grote getallen van 10 of meer cijfers te lezen?
"Ja, als je je robovision niet hebt ingeschakeld, zal het niet meteen duidelijk zijn of we het hebben over 3 miljard of 30."
"Om de code leesbaarder te maken (en dit is belangrijk!), staat Java toe dat onderstrepingstekens worden ingevoegd in numerieke literals (ze hebben geen invloed op de waarde van het getal).
"Bovenstaand voorbeeld kan worden herschreven met onderstrepingstekens om het wat duidelijker te maken:
Code | Beschrijving |
---|---|
|
Dit zal prima compileren. |
|
Compilatiefout: 3 miljard is te groot voor een int letterlijk. |
|
Compilatiefout: de letterlijke waarde is een lange, maar de variabele is een int. Bovendien is 3 miljard meer dan de maximale int. |
"Dit is veel handiger om te lezen, hoewel een komma in plaats van een onderstrepingsteken bekender zou zijn!"
"Maar we kunnen geen komma's gebruiken in numerieke literals omdat ze al voor een ander doel worden gebruikt, bijvoorbeeld om argumenten van elkaar te scheiden bij het aanroepen van een methode.
Echte letterlijke getallen
"Je hebt waarschijnlijk al geraden dat je in je code niet alleen gehele getallen kunt specificeren, maar ook letterlijke drijvende komma's (reële getallen)."
"Zowel dubbels als drijvers?"
"Ja. Eigenlijk is de regel vrij eenvoudig: als een getal in de code een decimaalteken bevat, dan is het getal een letterlijke drijvende komma. En niet zomaar een letterlijke, maar dubbele letterlijke waarde . moet de letter 'F' (of 'f') aan het einde van het nummer plaatsen .
Voorbeelden:
Code | Beschrijving |
---|---|
|
Dit zal prima compileren. |
|
Dit zal prima compileren. |
|
Dit zal prima compileren. |
|
Dit zal prima compileren. |
|
Er zal een compilatiefout optreden: de variabele is een float, maar de letterlijke waarde is een double. |
"Trouwens, je kunt een letterlijk geheel getal expliciet omzetten in een float of double literal door simpelweg het achtervoegsel 'F' (voor float ) of D (voor double ) toe te voegen. Voorbeelden:
Code | Beschrijving |
---|---|
|
Dit zal prima compileren. |
|
Dit zal prima compileren. |
|
Er zal een compilatiefout optreden: de variabele is een int, maar de letterlijke waarde is een double . |
"Floating-point literals kunnen wetenschappelijke notatie gebruiken : naast het ondertekende deel van het getal kunt u ook een macht van tien specificeren. Voorbeeld:
Letterlijk | Wiskundige notatie | Definitieve waarde |
---|---|---|
1.23 E 2 | 1.23*10 2 | 123,0 |
1.23 E 3 | 1.23*103 | 1230,0 |
1,23 E -6 | 1.23*10 -6 | 0,00000123 |
1 E 6 | 1.0*10 6 | 1000000.0 |
1 E -10 | 1.0*10 -10 | 0.0000000001 |
Letterlijke tekenreeksen
"Je kunt ook hele regels tekst in je code specificeren. Om de compiler te vertellen dat hij een string moet behandelen als data (een letterlijke waarde) en niet als onderdeel van de code, wordt de hele string aan beide kanten tussen dubbele aanhalingstekens geplaatst.
"Als een enkele coderegel meerdere dubbele aanhalingstekens heeft, worden ze in paren gesplitst. Het eerste dubbele aanhalingsteken geeft het begin van een letterlijke zin aan. De volgende geeft het einde van de letterlijke zin aan. begin van een nieuwe letterlijke zin, en de volgende markeert het einde van de tweede letterlijke, enzovoort.
"Elk van deze letterlijke waarden is een String .
Voorbeelden
Code | Uitleg |
---|---|
|
Er zijn 5 literals in een lijn. Elk van hen bestaat uit een enkel '+'-teken |
|
Deze letterlijke waarde is een lege tekenreeks. Een tekenreeks zonder tekens. |
|
Er zijn hier twee letterlijke woorden. Het resultaat is de tekenreeks '2+3-5', geen getal |
|
Er zijn ook twee letterlijke woorden hier. Er is hier geen retourverklaring. |
"Als een letterlijke tekenreeks te lang is, kan deze worden opgesplitst in meerdere regels en aan elkaar worden gelijmd met de 'plus-operator':
Code | Uitleg |
---|---|
|
Als u deze regel naar het scherm uitvoert, wordt alle tekst op één regel weergegeven! |
Letterlijke tekens
"Wat als ik een letterlijke waarde nodig heb die een enkel teken is in plaats van een string? Moet ik een string maken die uit een enkel teken bestaat?"
"Nee, dan heb je een letterwoord nodig waarvan het type is char
. Kun je raden hoe het begin en het einde van zo'n letterwoord wordt aangeduid?"
"Enkele aanhalingstekens?"
"Ja, en binnen de enkele aanhalingstekens moet er een teken staan en slechts één teken. U kunt geen lege enkele aanhalingstekens gebruiken.
Voorbeelden:
Code | Uitleg |
---|---|
|
Een letterlijke letter waarvan het type char is. Het bevat de Latijnse letter 'A'. |
|
Een letterlijke letter waarvan het type char is. Het bevat het '@'-symbool |
|
Een letterlijke letter waarvan het type char is. Het bevat een Japans karakter. En ook dit is mogelijk. |
|
Een letterlijke letter waarvan het type char is. Het bevat een Unicode-teken gespecificeerd door zijn nummer. |
"Het laatste voorbeeld wijst een Unicode-teken toe met een speciale notatie: eerst hebben we het voorvoegsel \\u
, gevolgd door 4 hexadecimale tekens. In de volgende lessen leer je hier meer over."
GO TO FULL VERSION