• A char
  • A short, az int és a long




    Download 1.08 Mb.
    bet15/51
    Sana07.04.2017
    Hajmi1.08 Mb.
    #3295
    1   ...   11   12   13   14   15   16   17   18   ...   51

    A short, az int és a long


    short, az int és a long teljesen azonos módon használható, mint a byte, a különbség mindössze az értéktartományban van (illetve abban, hogy a long típus literál használatához a szám mögé egy l karaktert kell írnunk):

    • short: -32768 – 32768

    • int: –2147483648 – 2147483647

    • long: -9223372036854775808l – 9223372036854775807l

    Ha nem adunk meg egy egész szám literál után módosító karaktert, akkor a nyelv szabályai szerint a fordító megpróbálja konvertálni arra a típusra, ami a használt változó típusa, egyéb esetben a literál típusa int lesz.

    A char


    A többi nyelvhez hasonlóan a char egy öszvér adattípus, alapvetően számokat tartalmaz, de ha az értékét kiírjuk, akkor karaktereket kapunk eredményül. A Java nyelv úttörő volt a tekintetben, hogy a char típus alapja nem a 8 bites byte, hanem az 32 bites integer, hiszen a Java nem ASCII alapú, hanem UTF-8 az alapértelmezett karakter kódolása, mivel ismert világ összes karaktere nem fér el 8 biten.

    Nézzük meg ezt a gyakorlatban:



    view plaincopy to clipboardprint?

    1.     char betű = 64;  

    2.     System.out.print(betű);  

    3.     betű = ’\n’;  

    4.     System.out.print(betű);  

    5.     betű = ’a’;  

    6.     System.out.print(betű);  

    7.     betű = ’\t’;  

    8.     System.out.print(betű);  

    9.     betű = ’\\’;  

    10.     System.out.print(betű);  

    11.     betű = ’\’’;  

    12.     System.out.print(betű);  

    13.     betű = ’"’;  

    14.     System.out.print(betű);  

    15.     betű = ’\070’;  

    16.     System.out.print(betű);  

    17.     betű = ’\u003F’;  

    18.     System.out.print(betű);  

    Eredményül az alábbi (ránézésre értelmetlen) karakter halmazt kapjuk:

    view plaincopy to clipboardprint?

    1. @  

    2. a       \’"8?  

    Lássuk a dekódolást:

    • @ karakter UTF-8 (és ASCII) kódja a 64 szám, ezért a @ az első kiírt karakter.

    • A \n karakter az újsor kódja, ez nem látható karakter, viszont a (szintén nem látható) kurzort a következő sorba teszi.

    • A következő sor elején kiírt a betű egyértelmű kell legyen, hiszen ezt adtuk értékül a betű nevű változónak.

    • A negyedik kiírt karakter ismét egy nem látható karakter (\t), amely egy tabulátor pozícióval jobbra mozgatja a kurzort.

    • Biztos felmerült, hogy a \ karaktert hogy tudjuk kiírni: egyszerűen a \\ karaktert kell használnunk. A \ (backslash vagy visszaper jel) egy speciális karakter, amely az őt követő karakternek is speciális jelentést ad.

    • A szimpla idézőjel kiírásához a \’ karaktereket kell használnunk.

    • A dupla idézőjel kiírható, ha szimpla idézőjelek között van.

    • A \070 kódolás oktális formátumú számot hordoz, a 070 oktális szám azonos az 56 decimális számmal, amely az UTF-8 kódrendszerben a ’8’ karakternek felel meg.

    • A \u003F kódolás hexadecimális formátumú számot jelent, a 003F szám azonos a 63 decimális számmal, amelynek a ’?’ karakter felel meg.

    Mint láthatjuk, eléggé változatos módon tudunk karaktereket megadni, azonban a char kettős természetét az is meghatározza, hogy tudunk vele műveleteket végezni:

    view plaincopy to clipboardprint?

    1. char betű = 64;  

    2. betű++;  

    3. System.out.print(betű);  

    4. betű += 0;  

    5. System.out.print(betű);  

    6. betű += ’0’;  

    7. System.out.print(betű);  

    Az eredmény az AAq karaktersorozat lesz, hiszen a 64 az ’@’ karaktert kódolja, amihez ha hozzáadunk egyet, akkor ’A’ betű lesz, amit a 65 kódol. Ha ehhez hozzáadunk nullát (0), akkor az eredmény továbbra is 65 marad, de ha karakteresen adunk hozzá nullát (’0’), amelynek a számszerű értéke 48, akkor az eredmény 113 lesz (mivel 65+48 az 113), amely szám a ’q’ karaktert kódolja.

    A karakter literálok két szimpla idézőjel közötti karakterek. Általában egy karakter, de ha az első karakter visszaper jel (\), akkor több karakter is lehet a két idézőjel között. Érdemes megtanulni a speciális karakter literálok használatát, mivel használatuk sok esetben szükséges a szövegfeldolgozáshoz.



    Download 1.08 Mb.
    1   ...   11   12   13   14   15   16   17   18   ...   51




    Download 1.08 Mb.