Elméleti alapozás

A literál típusai és alapszintű működésük

 

Bevezetés

Boolean (logikai) literál

Character (karakter) literál

String (szöveg) literál

Integer és long (egész) literál

Float és double (lebegőpontos) literál

 

Bevezetés

 

Az előző, A literál fogalma című fejezetben tisztáztuk a fogalmakat, ebben a fejezetben megnézzük a literálok típusait és néhány példakód segítségével leteszteljük működésüket, bár nyilvánvaló hasonlóságot fognak mutatni a Java nyelv egyszerű adattípusaival, amelyek újfent listázva a következők:

Boolean (logikai) literál

 

A logikai literál 2 értéket vehet fel: igaz (true) vagy hamis (false). Az egyik későbbi, Igazságtáblák című fejezetben ilyen literálokkal modellezzük le az igazságtáblák működését, de az érthetőség kedvéért belőle egy futtatható Java-példakódot ide másolok, a logikai ÉS műveletét:

 

Java-szintaktikai eleme: A && B.

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    System.out.print("FALSE AND FALSE -> ");
    System.out.print(false && false);
    System.out.println();

    System.out.print("TRUE AND FALSE -> ");
    System.out.print(true && false);
    System.out.println();

    System.out.print("FALSE AND TRUE -> ");
    System.out.print(false && true);
    System.out.println();


    System.out.print("TRUE AND TRUE -> ");
    System.out.print(true && true);
    }
}
 

Végeredmény:

FALSE AND FALSE -> false

TRUE AND FALSE -> false
FALSE AND TRUE -> false
TRUE AND TRUE -> true

 

Character (karakter) literál

 

A karakter literál csakis 1 db karakter lehet az Unikód-táblából, ezért konkrétan (például 'a') vagy Unikód-azonosítójával (a = '\0061') hivatkozhatunk rá.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Megadásakor figyeljünk arra, hogy a szöveggel ellentétben (" ") csakis egyes aposztrófot (' ') használhatunk!

 

Nézzünk meg egy futtatható Java-példakódot karakter literálokkal:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    System.out.print('J');
    System.out.print('\u0061');
    System.out.print('v');
    System.out.print('\u0061');
    }
}
 

Végeredmény:

Java

 

További megjegyzés, hogy nem mindegyik Unikód-karaktert lehet közvetlenül megjeleníteni, hiszen köztük vannak olyanok, amelyek egyéb funkcióval ellátottak. Néhány ilyen karakterről részletesen írok az Egyéb formázó karakterek című fejezetben.

 

String (szöveg) literál

 

A szöveg literál voltaképpen karakterekből álló szövegszekvencia.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Megadásakor figyeljünk arra, hogy a karakterrel ellentétben (' ') csakis dupla aposztrófot (" ") használhatunk!

 

Nézzünk meg egy futtatható Java-példakódot szöveg literállal, amely során felhasználunk egyéb formázó karaktereket is:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
System.out.print("Nézzünk meg egy futtatható Java-példakódot szöveg literállal,\namely során természetesen felhasználhatunk\n\tegyéb formázó karaktereket is.");
}
}

 

Végeredmény:

Nézzünk meg egy futtatható Java-példakódot szöveg literállal,

amely során természetesen felhasználhatunk

    egyéb formázó karaktereket is.

 

Integer és long (egész) literál

 

Az egész literáltípus lehet:

Az alapértelmezett értéktárolási tartománya int nagyságú, tehát...

 

tárolás 32 biten

számtartománya –2,147,483,648 és +2,147,483,647 között

 

...de a számliterál mögé illesztett L karakterrel long típussá alakítható, ekkor:

 

tárolás 64 biten

számtartománya –9,223,372,036,854,775,808 és +9,223,372,036,854,775,807 között.

 

Nézzünk néhány jellemző, futtatható Java kódot! Bemelegítésképpen kezdjük egyszerű számkiírással:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    System.out.println(+1);
    }
}
 

Végeredmény:

+1

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    System.out.println(-1);
    }
}
 

Végeredmény:

-1

 

Teszteljük le azt, hogy működnek-e a negatív egész számú literálokon végzett műveletek (a válasz természetesen igen, mert (-1) + (-1) = -2):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {

    int szam = -1 + -1;
    System.out.println(szam);
    }
}
 

Végeredmény:

-2

 

Az egész literálokat nemcsak decimális, hanem hexadecimális és oktális formában is megadhatjuk:

Az alábbi kódokban a decimális 10 értékével kísérletezünk, amelynek:

Ha pontos a kódmegadásunk, akkor az egyszerű matematikai művelet hexadecimális és oktális literálok beiktatásával is helyes végeredményeket fog szolgáltatni (11):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {

    int szam = 1 + 0xa;
    System.out.println(szam);
    }
}
 

Végeredmény:

11

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {

    int szam = 1 + 012;
    System.out.println(szam);
    }
}
 

Végeredmény:

11

 

Float és double (lebegőpontos) literál

 

Lebegőpontos, más néven valós literálok tizedes törttel (meg a többiekkel) leírható nem egész számok. (Bocsánat, ezt a poént, amely egy 1965-ös vígjátékra utal, nem hagyhattam ki...)

 

Kétféle ábrázolásuk lehetséges:

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Ebben az esetben vigyázzunk, hogy ne vesszőt (,),

hanem mindig pontot (.) írjunk a kódba!

3 x 102 = 300, mert 3 x (10 x 10) = 300

 

...amelyben:

A fenti példánál maradva Java-beli ábrázolása, amint azt a Numerikus lebegőpontos című fejezetben már ismertettük:

 

3e2 vagy 3E2

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {

    int szam = 1 + 3e2;
    System.out.println(szam);
    }
}
 

Végeredmény:

301

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {

    int szam = 1 + 3E2;
    System.out.println(szam);
    }
}
 

Végeredmény:

301

 

Valós literálok ábrázolása természetesen 0-nál kisebb számok esetében is működik. Alakítsuk át a fenti példát 0-nál kisebbre (3 x 10-2) és nézzük meg Java-béli literális bevitelét:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {

    int szam = 3 * 1e2;
    System.out.println(szam);
    }
}
 

Végeredmény:

0.03

 

A valós literálok alapértelmezett adattárolása double adattípuson történik, de szám után illesztett F betűvel float típussá alakítható.