Java/Klíčová slova
Java má jako klíčová slova následující: abstract, assert (od Javy 1.4), boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum (od Javy 5.0), extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp (od Javy 1.2), super, switch, synchronized, this, throw, throws, transient, try, void, volatile a while.
abstract
[editovat | editovat zdroj]Klíčové slovo abstract se používá u tříd a u metod.
- Použití u třídy značí, že daná třída nemůže být instancována (zdánlivá výjimka níže), jedná se o takzvanou abstraktní třídu (instancovatelná třída se nazývá konkrétní). Z pochopitelného důvodů se nemůže jednat o třídu finální – aby měla abstraktní třída smysl, musíme mít možnost odvodit od ní podtřídy. Klíčové slovo se u tříd píše obvykle za modifikátory přístupu a za případně použité klíčové slovo static.
- U metody je možné použít abstract pouze tehdy, je-li metodou abstraktní třídy. Abstraktní metoda se pouze deklaruje, neimplementuje se. Proto nemůže být finální, statická, nativní ani soukromá. Píše se před návratovou hodnotu metody.
U abstraktních tříd (a jejich metod) se nejčastěji použijí až podtřídy, abstraktní metody je ovšem možné implementovat i přímo při instancování – ve skutečnosti pak jde o ovšem o instancování nepojmenované jednorázové podtřídy.
public abstract class AbstraktniTrida {
/** Abstraktní metoda nemá žádnou implementaci ani tělo */
public abstract void abstraktniMetoda();
/** Konkrétní metoda implementaci má */
public void konkretniMetoda() {
System.out.println("Již implementováno.");
}
}
…
// implementace abstraktní metody při instancování
// mojeInstance je instancí nepojmenované podtřídy!
AbstraktniTrida mojeInstance = new AbstraktniTrida () {
public void abstraktniMetoda() {
System.out.println("Už je implementováno.");
}
}
assert
[editovat | editovat zdroj]Klíčové slovo assert se používá pro aserce, což jsou tvrzení o stavu programu, která by měla být pravdivá z hlediska jeho vnitřní logiky a jejichž případné nekontrolování nebude mít vliv na správný běh odladěného programu. Nepoužívají se například na ověřování správného vstupu od uživatele. Jejich syntaxe je:
assert výraz1 [: výraz2];
kde první výraz musí být vyhodnocen jako pravdivý, jinak je vyvolána výjimka s druhým výrazem jako parametrem. Například
assert seznam != null && seznam.délka() > 0 : "seznam je prázdný";
Object hodnota = seznam.get(0);
Aserce, tedy kontrolování v nich uvedených podmínek, je možné zapnout či vypnout. Obvykle slouží k jejich zapnutí přepínače -ea nebo -enableassertions z příkazového řádku.
boolean
[editovat | editovat zdroj]Klíčové slovo boolean označuje stejnojmenný primitivní typ proměnné. Jedná se o proměnné nabývající jen dvou možných hodnot: true (pravda) a false (nepravda). Jejich přednastavenou hodnotou je false.
break
[editovat | editovat zdroj]Klíčové slovo break se používá pro opuštění cyklu a také pro ukončení větve příkazu switch. Příklad pro cyklus:
for (int i = 0; ; i++) {
System.out.println("Iterace " + i);
if ( i == 5 ) {
break; // 5* je dost
}
}
Příklad pro switch:
int i;
String den;
…
switch (i) {
case 1: den = "pondělí";
break;
case 2: den = "úterý";
break;
case 3: den = "středa";
break;
case 4: den = "čtvrtek";
break;
case 5: den = "pátek";
break;
case 6: // není ukončeno breakem, takže vykonávaní pokračuje přes case 7
case 7: den = "víkend";
break;
}
byte
[editovat | editovat zdroj]Klíčové slovo byte označuje jeden z primitivních typů, totiž osmibitové znaménkové celé číslo. Používá se na patřičných místech, kde se používají datové typy, například pro deklaraci proměnné:
byte hodnota = 4;
case
[editovat | editovat zdroj]Klíčové slovo case se používá v blocích příkazu switch pro uvození jednotlivých hodnot určujících jednotlivé větve.
catch
[editovat | editovat zdroj]Klíčové slovo catch je součástí mechanismu výjimek a používá se v blocích uvozených klíčovým slovem try.
char
[editovat | editovat zdroj]Klíčové slovo char definuje jeden z primitivních typů. Je zkratkou anglického character – znak a je určeno pro jednotlivé znaky standardu Unicode. Lze jej používat také jako neznaménkové šestnáctibitové číslo.
class
[editovat | editovat zdroj]Klíčové slovo class uvozuje deklaraci a definici třídy.
Rozvitá Backusova-Naurova forma deklarace třídy vypadá následovně:
deklarace-třídy ::= [přístupové modifikátory] class identifikátor [rozšiřuje] [implementuje] tělo-třídy rozšiřuje ::= extends jméno-třídy implementuje ::= implements jména-rozhraní jména-rozhraní ::= jméno-rozhraní [,
jména-rozhraní] tělo-třídy ::={
[členské-deklarace]}
členské-deklarace = členská-deklarace [členské-deklarace] členská-deklarace = deklarace-položky | inicializátor | konstruktor | deklarace-metody | deklarace-třídy
const
[editovat | editovat zdroj]Klíčové slovo const je sice rezervované, ale v dosavadních verzích Javy není nijak využívané. K označení entit za konečné slouží klíčové slovo final.
continue
[editovat | editovat zdroj]Klíčové slovo continue slouží k ukončení stávající iterace cyklu. Na rozdíl od klíčového slova break ovšem neukončuje cyklus; běh pokračuje další iterací. Například
for (int i = 1; i <= 3; i++){
if (2 == i) continue;
System.out.println("Iterace č. " + i);
}
vypíše hlášku pro první a třetí iteraci, druhá je ukončena před výpisem.
default
[editovat | editovat zdroj]Klíčové slovo default je součástí konstrukce příkazu switch. Jedná se o uvození větve, která je zvolena, pokud žádná jiná větev nevyhovuje.
do
[editovat | editovat zdroj]Klíčové slovo do uvozuje cyklus do-while, jehož konstrukce je
do {
// příkazy
} while (podmínka)
Tedy například
int i=1;
do {
i += 1;
System.out.println(i);
} while (i <= 10)
double
[editovat | editovat zdroj]Klíčové slovo double označuje jeden z primitivní typů. Jedná se o 64bitová číslo s plovoucí řádovou čárkou. Existuje k němu i standardní třída java.lang.Double pro případy, kde je vhodnější s takovými čísly operovat jako s objekty.
else
[editovat | editovat zdroj]Klíčové slovo else je volitelnou součástí podmíněného příkazu if. Je jím uvozen blok příkazů, které se mají provést, pokud není podmínka splněna.
Příklad:
if (hodnota > 5) {
System.out.println("Je to víc než pět.");
} else {
System.out.println("Není to více než pět.");
}
enum
[editovat | editovat zdroj]Klíčové slovo enum umožňuje deklarovat výčtový typ.
Příklad:
/** Výčet dnů */
enum Den { Pondeli, Utery, Streda, Ctvrtek, Patek, Sobota, Nedele };
extends
[editovat | editovat zdroj]Klíčové slovo extends slouží při definici třídy (klíčové slovo class) nebo rozhraní (klíčové slovo interface) k určení, jakou třídu, respektive rozhraní, rozšiřuje.
Příklady:
public class NovaTrida extends StaraTrida
{
//...
}
public interface NoveRozhrani extends StareRozhrani
{
//...
}
final
[editovat | editovat zdroj]Klíčové slovo final má různý významy podle toho, zde se užije u deklarace třídy, metody a nebo proměnné.
Použití u třídy
[editovat | editovat zdroj]U třídy použití klíčového slova final zakazuje odvozování potomků. Jedná se tedy o určitý protiklad klíčového slova #abstract a použití obou slov zároveň u stejné třídy je nemožné.
Použití u metod
[editovat | editovat zdroj]U metod použití klíčového slova final zakazuje překrytí metody v potomcích.
Použití u proměnných
[editovat | editovat zdroj]U proměnné znamená použití slova final, že smí být nastavena pouze jednou. Pokud se jedná o primitivní typ, znamená to, že už se nesmí změnit jeho hodnota. Pokud je proměnná odkazem na objekt, znamená to, že nesmí být nastavena na jiný objekt, ale objekt sám se měnit může.
finally
[editovat | editovat zdroj]Klíčové slovo finally uvozuje podblok kódu v rámci bloku try, který se má provést na konci, ať už došlo nebo nedošlo k výjimce, dokonce i v případě, že je dříve v bloku příkaz return.
float
[editovat | editovat zdroj]Klíčové slovo float deklaruje jeden z primitivních typů, dvatřicetibitové znaménkové číslo s pohyblivou řádovou čárkou.
float teplota = 21.37;
for
[editovat | editovat zdroj]Klíčové slovo for uvozuje cyklus typu for.
Například kousek kódu:
for ( int i=1; i < 4; i++ ) {
System.out.println("Toto je " + i + ". iterace.");
}
vypisuje
Toto je 1. iterace. Toto je 2. iterace. Toto je 3. iterace.
goto
[editovat | editovat zdroj]Klíčové slovo goto je rezervováno pro budoucí užití.
if
[editovat | editovat zdroj]Klíčové slovo if uvozuje podmíněný příkaz:
if (podmínka) {
příkaz_pokud_splněna_podmínka;
} else {
příkaz_pokud_nesplněna_podmínka;
}
Jak je vidět z příkladu, často je používáno současně s klíčovým slovem else.