Dione
Z. KotalaP. Toman: Java
Predchozi (Obsah) Dalsi

6. Lexikální elementy

Java rozlišuje několik druhů lexikálních elementů: identifikátory, komentáře, konstanty, klíčová slova, operátory, oddělovače (1) a bílé znaky (2) .

Identifikátory, konstanty, klíčová slova a víceznakové operátory nesmí být rozděleny bílým znakem. Na místě jednoho bílého znaku je možné uvést libovolný počet bílých znaků, což lze úspěšně použít pro přehledný zápis programu.

6.1. Identifikátory

Identifikátory v Javě mohou mít neomezenou délku. Malá a velká písmena se považují za rozdílné znaky, což znamená, že např. identifikátory chobot a Chobot jsou navzájem různé.

Každý identifikátor musí začínat písmenem nebo podtržítkem. Zbylá část víceznakového identifikátoru může navíc obsahovat číslice "0".."9" a znak "$".

Pozn.: Pro zápis identifikátorů lze použít i některé národní znaky z kódování Unicode (viz příloha C.) - k určení, zda se jedná o platný identifikátor slouží metody ze třídy java.lang.Character.

6.2. Komentáře

V Javě lze použít tři typy komentářů, jejichž obsahy překladač ignoruje:

  • Komentář začíná znaky /* a ukončen je dvojicí */.

  • Komentář je uvozen znaky // a ukončen koncem řádku.

  • Komentář, který je uvozen znaky /** a ukončen znaky */, se používá se pro tvorbu dokumentace k programu. Pro generování této dokumentace se používá program javadoc (viz D.6.).

Priklad 6.1.
/* Toto je komentář
   na dvě řádky */

// Toto je komentář do konce řádky

/**
* Toto je dokumentační komentář - obsahuje speciální značku:
* @author Zdeněk Kotala
*/

6.3. Klíčová slova

Java má vyhrazeno několik klíčových slov, která nesmí být použita pro názvy identifikátorů. Některá klíčová slova zatím nemají žádný význam a jsou vyhrazena pro budoucí použití (označeny *). Většinu tvoří příkazy, názvy základních datových typů a operátory:

abstract default goto * operator * synchronized
boolean do if outer * this
break double implements package throw
byte else import private throws
byvalue * extends inner * protected transient
case false instanceof public true
cast * final int rest * try
catch finally interface return var *
char float long short void
class for native static volatile
const * future * new super while
continue generic * null switch

6.4. Konstanty

6.4.1. Celočíselné konstanty

Celočíselné konstanty mohou být vyjádřeny ve tvaru:

  • decimálním - konstanta se skládá z číslic 0-9 a nesmí začínat číslicí 0,

  • hexadecimálním - konstanta začíná sekvencí 0x nebo 0X a kromě číslic 0-9 může obsahovat znaky abcdefABCDEF,

  • oktalovém - konstanta začíná číslicí 0 a dále smí obsahovat jen číslice 0-7.

Všechny celočíselné konstanty jsou implicitně typu int. Pro změnu typu na long je třeba za konstantu připojit znak l nebo L:

Priklad 6.2.
a = 1000L;

6.4.2. Znakové konstanty

Znaková konstanta je znak nebo skupina znaků reprezentující znak jeden - tzv. escape sekvence (viz příloha B.). Znaková konstanta se uzavírá mezi apostrofy a je vždy typu char.

Priklad 6.3.
char w = 'w';        //  přiřazení znaku 'w'
char aa = '\u00C1';  //  přiřazení Unicode znaku 'Á' pomocí escape sekvence

6.4.3. Řetězcové konstanty

Řetězcová konstanta se skládá z libovolného počtu znaků Unicode uzavřených v uvozovkách. Některé speciální znaky lze zapisovat pomocí escape sekvencí (viz příloha B.). Všechny řetězcové konstanty jsou instancemi třídy String (viz kap. 14.).

Priklad 6.4.
String retezec = "Java!";

6.4.4. Racionální konstanty

Racionální konstanta musí obsahovat alespoň jednu číslici a lze ji zapsat ve tvaru:

  • Exponenciálním - konstanta musí obsahovat znak e nebo E, za kterým následuje exponent.

  • Semilogaritmickém - konstanta vždy musí obsahovat desetinou tečku.

Racionální konstanta je automaticky považována za typ float. Pro změnu typu na double je třeba za konstantu připojit znak d nebo D. Podobně připojením znaku f nebo F se konstanta explicitně označí jako float.

Priklad 6.5.
float a = 3E5;
float b = 3.5F;
double c = a + 32.05e5d;

6.4.5. Logické konstanty

Pro typ boolean jsou definovány dvě konstanty:

  • true - reprezentující logickou 1,

  • false - reprezentující logickou 0.

6.4.6. Konstanty typu třída

Od JDK1.1 je možné používat konstanty typu třída (class literals), jejichž syntaxe je:

   typ .class

Tento výraz se vyhodnotí jako instance třídy java.lang.Class pro příslušný typ (třídu). Pro primitivní typy výraz odpovídá zápisům podle tabulky:

      boolean.class   ==   java.lang.Boolean.TYPE
      char.class      ==   java.lang.Character.TYPE
      byte.class      ==   java.lang.Byte.TYPE
      short.class     ==   java.lang.Short.TYPE
      int.class       ==   java.lang.Integer.TYPE
      long.class      ==   java.lang.Long.TYPE
      float.class     ==   java.lang.Float.TYPE
      double.class    ==   java.lang.Double.TYPE
      void.class      ==   java.lang.Void.TYPE

Priklad 6.6.
Třída java.lang.Class obsahuje metody sloužící ke zjišťování informací o třídě za běhu programu - v následujícím výpisu je použita metoda getName() vracející úplné jméno třídy.

public class Info {
   public static void main(String args[]) {
      System.out.println(String.class.getName());
      System.out.println(boolean.class.getName());
   }
}

Program vytiskne vytiskne:

java.lang.String
boolean


  • (1) Oddělovače jsou složené, kulaté a hranaté závorky, tečka, čárka a středník.
  • (2) Mezi bílé znaky patří mezera, tabulátor, přechod na další řádku atd.

Predchozi
Converted by Selathco v0.9 on 25.09.1999 19:46
Dalsi