1. Lista med ord
Som i alla programmeringsspråk har Java ord som har speciell betydelse. Till exempel return
eller if
eller while
. Dessa ord kallas nyckelord ( nyckelord ) och anses reserverade av Java-språket.
Du kan inte använda dessa ord som ett variabelnamn, metodnamn eller klassnamn. Kompilatorn kommer alltid att tolka dem på ett strikt definierat sätt. Det finns 54
sådana ord i Java.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Du känner redan till några av dem, och vi pratar om resten nu.
2. Primitiva typer
Som du säkert kommer ihåg har Java 8 primitiva typer, och var och en av dem har sitt eget nyckelord:
byte
short
int
long
char
float
double
boolean
void
Om du har ett tillräckligt nyfiket sinne finns det en god chans att du redan försökt namnge en variabel int. Och du lyckades såklart inte. Detta är just för att namnen på alla de primitiva typerna är reserverade ord.
Typen void
faller också i denna kategori.
3. Slingor och grenar
Slingor och grenar ger oss också en ganska lång lista med sökord:
if
else
switch
case
default
while
do
for
break
continue
Bara 10 ord räcker för att språket ska tillhandahålla flera typer av loopar, förgreningar och kontrollsatser för att avbryta loopar ( break
och continue
) och flera förgreningar ( switch
). Du är redan bekant med alla dessa sökord.
4. Undantag
Undantag ger oss 5 nyckelord:
try
catch
finally
throw
throws
Dessa är alla en del av ett try-catch-finally
block. Operatören för att kasta undantag är throw
, och throws
nyckelordet stöder checked
undantagsmekanismen.
Den goda nyheten är att du redan är bekant med alla nyckelord relaterade till undantag, så du är också redan mest bekant med att arbeta med undantag.
5. Synlighet
Här finns bara tre nyckelord, och du är redan bekant med dem.
private
protected
public
public
ger tillgång till en metod/variabel/klass var som helst i programmet.
private
förbjuder åtkomst till en metod/variabel/klass var som helst i programmet. Åtkomst tillåts endast inom samma klass som en metod markerad med modifieraren private
.
protected
fungerar på samma sätt som private
, men tillåter också åtkomst till en metod/variabel/klass från ärvda klasser. Fördelarna med denna modifierare kommer att bli tydligare för dig när du blir bekant med OOP och arv.
6. Arbeta med klasser
Det finns 11 nyckelord i denna kategori:
class
interface
enum
import
package
extends
implements
static
final
abstract
default
De kan delas in i 4 grupper.
Den första gruppen avser skapandet av klasser: class
, interface
och enum
. Du har redan lärt dig om att deklarera klasser och uppräkningar . Nyckelordet interface
används för att deklarera ännu en klassliknande typ: gränssnitt.
Den andra gruppen består av nyckelord för paket och import, som du redan är bekant med. Paketnyckelordet används för att specificera paketet för en klass i en klassfil. Och import
är så att vi kan använda korta namn på externa klasser när vi skriver våra egna klasser.
Nyckelorden extends
och implements
används för arv. Du kommer att ta en titt på dem i början av Java Core-uppdraget.
Slutligen består den sista gruppen av , , static
, och modifierare. Du vet redan lite om och . Nyckelordet används för att göra en klass eller metod abstrakt. Du får mer information när du studerar arv i Java Core-uppdraget.final
default
abstract
static
final
abstract
7. Arbeta med objekt och variabler
Ytterligare sex nyckelord används när man arbetar med objekt, metoder och variabler.
new
instanceof
this
super
return
var
(sedan Java 10)
Operatören new
används för att skapa nya objekt — det vet du redan.
Operatorn instanceof
används för att verifiera att en variabel innehåller en referens till ett objekt av en viss typ. Du är redan bekant med det.
Nyckelordet this
används för att lösa problem som uppstår på grund av skuggning av instansvariabler och metoder. Du har också studerat detta.
Nyckelordet super
är analogt med this
, men det används för att referera till metoderna och variablerna för den överordnade klassen. Föräldraklassen kallas även för superklassen.
Satsen return
används för att returnera värdet av en metod, och även för att avsluta exekveringen av en metod.
Slutligen var
är det för att deklarera en variabel vars typ automatiskt härleds. Du är redan bekant med detta.
8. Flertrådning
På nivån för Java-syntax representeras multithreading av bara två ord.
synchronized
volatile
Vi kommer inte ens att röra dem. Gå till Java Multithreading- uppdraget och sedan dyker vi in.
9. Övrigt
Det finns ytterligare fyra speciella sökord:
native
transient
assert
strictfp
native
är en modifierare som kan skrivas före en metoddeklaration. Det betyder att metodkoden inte är skriven i Java, utan i C++ och är inbäddad i Java-maskinen (tja, eller en DLL). Som du säkert redan gissat är själva Java-maskinen också skriven i C++. Precis som många av de vanliga biblioteksmetoderna.
transient
är en modifierare som kan skrivas före instansvariabler (fält i en klass). Den ber Java-maskinen att hoppa över (eller ignorera) den markerade variabeln medan den serialiserar ett objekt i klassen. Du kan lära dig mer om serialisering i Java Collections-uppdraget.
assert
kommer även till Java från C++. Med dess hjälp kan du lägga till ytterligare kontroller i din kod (till exempel för att kontrollera om en variabel är null). Det viktiga här är att dessa kontroller är aktiverade eller inaktiverade vid kompilering.
Du kan bygga projektet för intern testning, och dessa kontroller kommer att utföras (ingår i bygget). Eller så kan du inaktivera dem under kompileringen för att skapa den version av programmet som kommer att levereras till användarna.
När det gäller strictfp
nyckelordet och den extra precisionen hos Intel-processorer har vi en hel historia för dig .
10. Reserverad men ej använd
Det finns också två nyckelord som är reserverade men som inte används.
const
goto
Dessa är också ett arv från C++-språket, där de finns och används.
11. Inte nyckelord
Formellt är konstanterna true
och false
konstanterna null
inte nyckelord. Som sagt, de har var och en sina egenheter. Du kan inte namnge en metod true
eller en variabel false
. Kompilatorn kommer inte att förstå sådan kod och kommer inte att kompilera den.