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