Java Típuskonverziók.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Programozási nyelvek II.
A fejhallgatók története
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
3. A programozás eszközei, programozás-technikai alapismeretek
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objective- C Bereczki Gréta Tamara
2009 Bevezetés a programozásba Krankovits Melinda.
3. előadás (2005. március 1.) Utasítások, tömbök
Adatbányászati technikák (VISZM185)
Programozási Nyelvek (C++) Gyakorlat Gyak 03.
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading.
C Kifejezések.
Borland C/C++ mintapéldák
Jt Java Kifejezések,precedencia. jt 2 Egy kifejezés operandusokból és operátorokból (műveletekből) áll. A kifejezésben szerepelhet egy vagy több operandus,
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
dr Póder Margit f. docens Rendszer- és Szoftvertechnológia Tanszék
Programozási technológiák
Programozási nyelvek II. Objektumorientált programozás a Java nyelv eszközeivel 2007/08.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás C# -ban Ciklusok.
Programozás Operátorok C# -ban.
Programozás Az adatokról C# -ban.
C nyelv utasításai.
A JavaScript bemutatása
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
IV. Java programozási alapok
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
Kifejezések. Algoritmus számol; Adott összeg; összeg:=0; Minden i:=1-től 5-ig végezd el Ha 2 | i akkor összeg:=összeg+2*i Ha vége Minden vége Algoritmus.
Operátorok Értékadások
Készítette: Csíki Gyula
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Objektum orientált programozás
Operátorok Vezérlési szerkezetek Gyakorlás
C Programozási alapok.
Programozás alapjai Csernoch Mária.
Free pascal feladatok
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
Típuskonverzió a C++ nyelvben
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
Fájlkezelés Programozási tételek
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Informatikai gyakorlatok 11. évfolyam
Kifejezések C#-ban.
Gépészeti informatika (BMEGEMIBXGI)
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Változók.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Konverziós operátorok
Előadás másolata:

Java Típuskonverziók

A Java erősen típusos nyelv A Java erősen típusos nyelv. Ez azt jelenti, hogy a fordító a típus kompatibilitásának ellenőrzését minden lehetséges esetben elvégzi. Egy típus kompatibilis egy másik típussal, ha az adott környezetben helyettesíthető vele. Bizonyos műveletek végrehajtása előtt az operandus típusát konvertálni kell egy másik típussá.

A típuskonverzió jellegét tekintve két szempontból is osztályozhatjuk azt: automatikus (implicit) vagy kényszerített (explicit) konverzió: Az első esetben a konverziót a fordító automatikusan elvégzi, második esetben a programozónak kell azt kikényszeríteni. konverzió iránya: eszerint megkülön-böztetünk szűkítő vagy bővítő típuskonverziót.

Implicit és explicit típuskonverziók A típuskonverzió implicit, ha azt a fordító automatikusan elvégzi, és explicit, ha azt a programozónak kell elvégeznie. Ez utóbbi esetben típuskényszerítésről beszélünk, s ilyenkor a programozó egy kifejezés értékére „ráerőltet” egy típust: (<típus>) <kifejezés>

A kifejezés elé kell tehát írnunk zárójelben azt a típust, amit „rá szerentnénk húzni” az értékre. A típuskényszerítés angol neve type cast, ezért az értéket, ill. változót „castolni (kásztolni)” is szokták. Pl.: double d; int i = 5; d = i; // int konvertálása double típussá implicit módon. Ez bővítés. d = 79.4; i = (int) d; // double konvertálása int típussá explicit módon. Ez szűkítés. i = d; // Szintaktikai hiba!!!

Bővítő konverziók Primitív típusok esetén egy szűkebb adattípus értéke konvertálható egy bővebb adattípus értékébe információvesztés nélkül. Az ilyen konverziót bővítő konverziónak nevezzük. Egy int típusú értékre pl. simán ráhúzható a long típus, hiszen az érték bőven belefér egy long típusú „dobozba”, még „lötyög” is benne. A bővítő konverziók iránya: byte short int long float double char A konverzió tranzitív.

Szűkítő konverziók A szűkítő konverzió adatvesztéssel járhat!!! Szűkítő konverzióról akkor beszélünk, ha egy bővebb típusból szűkebb típusba konvertálunk. A szűkítő konverzió adatvesztéssel járhat!!! adatvesztéssel

Numerikus operátorok típuskonverziói A Java a numerikus operátorok operandusait kiértékelés előtt a következő szabályok szerint automatikusan konvertálja: Unáris (egy operandusú) műveletek esetén: Ha az operandus típusa int int-nél szűkebb, akkor az operandust int típusúvá konvertálja, egyébként nem konvertál. Bináris (két operandusú) műveletek esetén: Mindkét operandust a kettő közül a bővebb, de minimum int típussá konvertálja.

Példák Kifejezés Eredeti típusok Konvertált típusok Kifejezés típusa b*s byte * short int * int int i/lon int / long long / long long f + 3 float + int float + float float 12L – s long – short long – long lon * 1.0 long * double double * double double c / b char / byte int / int