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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíčové slovo catch je součástí mechanismu výjimek a používá se v blocích uvozených klíčovým slovem try.
char
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíč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
editovatKlíčové slovo enum umožňuje deklarovat výčtový typ.
Příklad:
/** Výčet dnů */
enum Den { Pondeli, Utery, Streda, Ctvrtek, Patek, Sobota, Nedele };
extends
editovatKlíč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
editovatKlíč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
editovatU 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
editovatU metod použití klíčového slova final zakazuje překrytí metody v potomcích.
Použití u proměnných
editovatU 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
editovatKlíč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
editovatKlíčové slovo float deklaruje jeden z primitivních typů, dvatřicetibitové znaménkové číslo s pohyblivou řádovou čárkou.
float teplota = 21.37;
for
editovatKlíč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
editovatKlíčové slovo goto je rezervováno pro budoucí užití.
if
editovatKlíč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.