1. Liste over ord
Som i ethvert programmeringssprog har Java ord, der har en særlig betydning. For eksempel return
eller if
eller while
. Disse ord kaldes nøgleord ( nøgleord ) og betragtes som reserveret af Java-sproget.
Du kan ikke bruge disse ord som et variabelnavn, metodenavn eller klassenavn. Compileren vil altid fortolke dem på en strengt defineret måde. Der er 54
sådanne ord i Java.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Du kender allerede nogle af dem, og vi taler om resten lige nu.
2. Primitive typer
Som du sikkert husker, har Java 8 primitive typer, og hver af dem har sit eget søgeord:
byte
short
int
long
char
float
double
boolean
void
Hvis du har et tilstrækkeligt nysgerrigt sind, er der en god chance for, at du allerede har prøvet at navngive en variabel int. Og det lykkedes selvfølgelig ikke. Det er netop fordi navnene på alle de primitive typer er reserverede ord.
Typen void
falder også ind under denne kategori.
3. Løkker og grene
Sløjfer og grene giver os også en ret lang liste af søgeord:
if
else
switch
case
default
while
do
for
break
continue
Kun 10 ord er nok til, at sproget giver flere slags loops, brancher og kontroludsagn til at afbryde loops ( break
og continue
) og flere brancher ( switch
). Du er allerede bekendt med alle disse søgeord.
4. Undtagelser
Undtagelser giver os 5 nøgleord:
try
catch
finally
throw
throws
Disse er alle en del af en try-catch-finally
blok. Operatoren til at kaste undtagelser er throw
, og throws
nøgleordet understøtter checked
undtagelsesmekanismen.
Den gode nyhed er, at du allerede er bekendt med alle søgeord relateret til undtagelser, så du er også allerede mest bekendt med at arbejde med undtagelser.
5. Synlighed
Her er der kun tre nøgleord, og du kender dem allerede.
private
protected
public
public
giver adgang til en metode/variabel/klasse fra hvor som helst i programmet.
private
forbyder adgang til en metode/variabel/klasse fra et hvilket som helst sted i programmet. Adgang er kun tilladt inden for samme klasse som en metode markeret med modifikatoren private
.
protected
fungerer på samme måde som private
, men giver også adgang til en metode/variabel/klasse fra nedarvede klasser. Fordelene ved denne modifikator vil blive tydeligere for dig, når du bliver fortrolig med OOP og arv.
6. Arbejde med klasser
Der er 11 søgeord i denne kategori:
class
interface
enum
import
package
extends
implements
static
final
abstract
default
De kan opdeles i 4 grupper.
Den første gruppe vedrører oprettelsen af klasser: class
, interface
og enum
. Du har allerede lært om at erklære klasser og optællinger . Nøgleordet interface
bruges til at erklære endnu en klasselignende type: grænseflader.
Den anden gruppe består af pakke- og importnøgleord , som du allerede er bekendt med. Pakkenøgleordet bruges til at angive pakken for en klasse i en klassefil. Og import
er så vi kan bruge korte navne på eksterne klasser, når vi skriver vores egne klasser.
Nøgleordene extends
og implements
bruges til arv. Du vil tage et kig på dem helt i begyndelsen af Java Core-questen.
Endelig består den sidste gruppe af static
, final
, default
, og abstract
modifikatorerne. Du ved allerede lidt om static
og final
. Nøgleordet abstract
bruges til at gøre en klasse eller metode abstrakt. Du får flere detaljer, når du studerer arv i Java Core-quest.
7. Arbejde med objekter og variabler
Der bruges seks nøgleord mere, når man arbejder med objekter, metoder og variabler.
new
instanceof
this
super
return
var
(siden Java 10)
Operatøren new
bruges til at oprette nye objekter - det ved du allerede.
Operatoren instanceof
bruges til at verificere, at en variabel indeholder en reference til et objekt af en bestemt type. Du er allerede bekendt med det.
Nøgleordet this
bruges til at løse problemer, der opstår på grund af skyggelægningen af instansvariabler og -metoder. Du har også studeret dette.
Nøgleordet super
er analogt med this
, men det bruges til at henvise til metoderne og variablerne i den overordnede klasse. Forældreklassen kaldes også for superklassen.
Udsagnet return
bruges til at returnere værdien af en metode og også til at afslutte udførelsen af en metode.
Endelig var
er det til at erklære en variabel, hvis type automatisk udledes. Du er allerede bekendt med dette.
8. Multithreading
På niveauet for Java-syntaks er multithreading repræsenteret af kun to ord.
synchronized
volatile
Vi vil ikke engang røre dem. Kom til Java Multithreading- quest, og så dykker vi ind.
9. Diverse
Der er yderligere 4 specielle søgeord:
native
transient
assert
strictfp
native
er en modifikator, der kan skrives før en metodedeklaration. Det betyder, at metodekoden ikke er skrevet i Java, men i C++ og er indlejret i Java-maskinen (nå, eller en DLL). Som du sikkert allerede har gættet, er selve Java-maskinen også skrevet i C++. Ligesom mange af de almindelige biblioteksmetoder.
transient
er en modifikator, der kan skrives før instansvariabler (felter i en klasse). Den beder Java-maskinen om at springe over (eller ignorere) den markerede variabel, mens den serialiserer et objekt i klassen. Du kan lære mere om serialisering i Java Collections-questen.
assert
kommer også til Java fra C++. Med dens hjælp kan du tilføje yderligere kontroller til din kode (for eksempel for at kontrollere, om en variabel er nul). Det vigtige her er, at disse kontroller er aktiveret eller deaktiveret på kompileringstidspunktet.
Du kan bygge projektet til intern test, og disse kontroller vil blive udført (inkluderet i build). Eller du kan deaktivere dem under kompilering for at oprette den version af programmet, der vil blive leveret til brugerne.
Hvad angår strictfp
nøgleordet og den ekstra præcision af Intel-processorer, har vi en hel historie til dig .
10. Reserveret, men ikke brugt
Der er også to søgeord, der er reserveret, men ikke brugt.
const
goto
Disse er også en arv fra C++ sproget, hvor de findes og bruges.
11. Ikke søgeord
Formelt set er konstanterne og true
konstanterne ikke nøgleord. Når det er sagt, har de hver deres særegenheder. Du kan ikke navngive en metode eller en variabel . Compileren vil ikke forstå en sådan kode og vil ikke kompilere den.false
null
true
false
GO TO FULL VERSION