Java II. I A Java programozási nyelv alapelemei



Hasonló dokumentumok
Java II. I A Java programozási nyelv alapelemei

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

A C programozási nyelv I. Bevezetés

Készítette: Nagy Tibor István

A C programozási nyelv I. Bevezetés

Bevezetés a C++ programozási nyelvbe

Kifejezések. Kozsik Tamás. December 11, 2016

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Programozás alapjai. 5. előadás

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

A C# programozási nyelv alapjai

A C programozási nyelv IV. Deklaráció és definíció

A C# PROGRAMOZÁSI NYELV

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Java programozási nyelv

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

és az instanceof operátor

1. Jelölje meg az összes igaz állítást a következők közül!

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

A C programozási nyelv III. Pointerek és tömbök.

Informatika terméktervezőknek

A C programozási nyelv III. Pointerek és tömbök.

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Imperatív és procedurális programozás a Javában

A Java nyelv. Bevezetés, alapok Elek Tibor

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

3. Gyakorlat Ismerkedés a Java nyelvvel

Szoftvertechnológia alapjai Java előadások

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Algoritmizálás + kódolás C++ nyelven és Pascalban

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

A C programozási nyelv II. Utasítások. A függvény.

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

GYAKORLATIAS JAVA MINTA

Szoftvertervezés és -fejlesztés I.

Programozás I gyakorlat

Java programozási nyelv

OOP #14 (referencia-elv)

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Occam 1. Készítette: Szabó Éva

Információs Technológia

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Programozás I. Első ZH segédlet

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Programozás II. 2. Dr. Iványi Péter

OOP III. A C# nyelv alapelemei II.

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés)

Programozási nyelvek JAVA EA+GY 1. gyakolat

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

JAVA PROGRAMOZÁS 2.ELŐADÁS

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

C# gyorstalpaló. Készítette: Major Péter

Bevezetés a C++ programozási nyelvbe

Programozási nyelvek II.: JAVA, 4. gyakorlat

Programozási nyelvek (ADA)

Pénzügyi algoritmusok

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

C programozás. 1 óra Bevezetés

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

Mintavételes szabályozás mikrovezérlő segítségével

Objektumorientált programozás C# nyelven III.

Kivételkezelés a C++ nyelvben Bevezetés

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

C++ programozási nyelv Konstruktorok-destruktorok

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Algoritmizálás és adatmodellezés tanítása 1. előadás

Apple Swift kurzus 3. gyakorlat

A JavaScript főbb tulajdonságai

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

AWK programozás, minták, vezérlési szerkezetek

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Java programozási nyelv 4. rész Osztályok II.

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Készítette: Nagy Tibor István

Típusok és konstansok

Maximum kiválasztás tömbben

Objektumorientált programozás C# nyelven III.

Programozás I gyakorlat

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

7. fejezet: Mutatók és tömbök

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Objektumok inicializálása

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Programozási nyelvek II.: JAVA, 4. gyakorlat

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Átírás:

Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak bıvítéseként definiált C++ szintaktikájával nagyon rokon. A továbbiakban az alapelemeket a C nyelvvel összehasonlítva ismertetjük. A elıször csak a Java nyelv legegyszerőbb elemeivel foglalkozunk. A leírás a legtöbb esetben nem teljes, de a C nyelv ismeretében egyszerő programok írásához elegendı. A hiányzó információkat a késıbbiekben pótoljuk. Java II.: Alapelemek JAVA2 / 2 A Java program A Java program osztályok halmaza. Végrehajtható kód csak osztály metódusában fordulhat elı. Egy alkalmazás belépési pontja egy olyan osztály, amelyben van egy public static minısítésőmain nevő metódus. A fenti fogalmak (osztály, metódus, minısítık) pontos jelentésére a késıbbiekben kitérünk. Java II.: Alapelemek JAVA2 / 3

Azonosítók A Java a Unicode karakterkészletet használja, tehát akár ékezetes azonosítókat is használhatunk. Az azonosító betővel kezdıdı és betővel vagy számmal folytatódó karaktersorozat. Az _ és a $ is a betők közé sorolandó. A betők bármelyik karakterkészletbıl származhatnak. Az azonosító hossza tetszıleges. A JAVA is kis- és nagybető érzékeny (case sensitive). Kulcsszavak, valamint a const, goto, null, true, false szavak nem lehetnek azonosítók. Java II.: Alapelemek JAVA2 / 4 Mint a C-ben: /* Szöveg */ Megjegyzések Egysoros: // Innentıl a sor végéig komment Dokumentációs /** Tetszıleges szöveg*/ A javadoc segédprogram feldolgozza. Java II.: Alapelemek JAVA2 / 5 Egyszerő típusok Hasonlóak, mint C-ben, de pontosan definiált helyfoglalással és ábrázolási móddal Nincs unsigned minısítı Konstans változófinal minısítıvel deklarálható (a const helyett). Java II.: Alapelemek JAVA2 / 6 Java2 / 2

Egyszerő típusok táblt blázata Típusnév boolean char byte short int long float double Jelentés Logikai típus (true vagy false értékkel) 16 bites Unicode karakter 8 bites elıjeles egész 16 bites elıjeles egész 32 bites elıjeles egész 64 bites elıjeles egész 32 bites lebegıpontos szám (IEEE 754 szerint) 64 bites lebegıpontos szám (IEEE 754 szerint) Java II.: Alapelemek JAVA2 / 7 Literálok (konstansok) Logikai értékek: true vagy false A C-vel teljesen egyezı módon használandók: Egész konstans Lebegıpontos konstans Karakter konstans (az escape szekvenciák is!) Szöveg konstans (csak Unicode szöveget is tartalmazhat) A szöveg konstanst a fordító automatikusan String típusúként kezeli (magyarázat majd késıbb). Java II.: Alapelemek JAVA2 / 8 ltozó használata 1. Definíciója csak metóduson belül. Nincs globális változó! Formája mint a C-ben, beleértve a kezdıértékadást is. Egyszerő típusú lokális változó definíciója egyben helyfoglalást is jelent. Java II.: Alapelemek JAVA2 / 9 Java2 / 3

Különbségek: ltozó használata 2. Változó definíció egy metóduson belül bárhol lehet (nem csak blokk elején). A definíció tehát Java-ban végrehajtható utasítás! Következmény: az inicializáló kifejezés (ha van) tetszıleges kifejezés lehet, csak a kifejezés értékének kell a definíció típusával kompatibilisnek lennie. Java II.: Alapelemek JAVA2 / 10 ltozó használata 3. Természetesen a változó csak a definíció után használható. A definíció hatásköre a definíciót tartalmazó blokk végéig tart. Kivétel: a for utasításban foglalt elsı kifejezésben található definíció érvényességi köre a ciklusmag! Java II.: Alapelemek JAVA2 / 11 ltozó használata 4. Példa a kivételre: for (int index=1; index<8; index++) { System.out.println(index); byte i = index+65; i System.out.println(i); } i és index egyaránt lokális a ciklusmagra nézve (tehát azon kívül nem használható!) index Java II.: Alapelemek JAVA2 / 12 Java2 / 4

ltozó használata 5. Mivel a i definíciója ténylegesen a ciklusmag belsejében van, így a ciklusmag minden végrehajtásakor létrejön, a végén pedig megszőnik. Az index az ıt tartalmazó kifejezés kiértékelésekor létrejön, és a ciklusból való kilépéskor megszőnik. Java II.: Alapelemek JAVA2 / 13 ltozó használata 6. Inicializálatlan lokális változó értéke határozatlan! Inicializálatlan változó használatát általában a fordító felismeri, és hibajelzéssel "jutalmazza". Figyelem! a késıbbiekben "osztály változókról" és "példány változókról" (adattagokról) is lesz szó! Java II.: Alapelemek JAVA2 / 14 Egydimenzós tömb Definíciója eltér a C szintaktikától. Két lépés (amely egy utasításba összevonható): 1. Tömb típus deklarációja típusnév azonosító[]; vagy típusnév [] azonosító; 2. Helyfoglalás a tömb elemeinek: azonosító = new típusnév[elemek száma] Java II.: Alapelemek JAVA2 / 15 Java2 / 5

Egydimenzós tömb (folyt.) A két lépés egy utasításba összevonva: típusnév azonosító [] = new típusnév[elemek száma] Az elemekre való hivatkozás már ugyanaz, mint a C nyelvben. A Java-ban többdimenziós tömbök is definiálhatók, amelyek nem feltétlenül négyzetesek. Bár nincs elıre definiált osztálya, de osztályhoz tartozóként kezeli a Java. Java II.: Alapelemek JAVA2 / 16 Egydimenzós tömb (folyt.) Minden tömbhöz tartozik egy length konstans, amely az elemek számát adja meg. Használata: tömbazonosító.lenght Java II.: Alapelemek JAVA2 / 17 Alaptípus pusú tömb Példa: int jegyek[]; // Ez csak egy tömb // típus létrehozása jegyek = new int[100]; // Helyfoglalás // 100 elemnek jegyek[16] = 1; // Elem értékének // beállítása Az indexelés itt is 0-tól kezdıdik. Különbség: az érvénytelen index kivételt vált ki! Megjegyzés: A fentieket a késıbbiekben még pontosítjuk! Java II.: Alapelemek JAVA2 / 18 Java2 / 6

Operátorok A C majdnem minden operátorát ismeri a Java (kivéve a pointerhez kapcsolódókat) Az operátorok jelentése az egyszerő típusokra ugyanaz. Különbségek: négy új operátor (>>>, >>>=, instanceof, new) nincs,(vesszı) operátor A kifejezések kiértékelési sorrendje meghatározott. Java II.: Alapelemek JAVA2 / 19 Kifejezések kiért rtékelési sorrendje A kifejezések kiértékelési sorrendjét meghatározza: 1. Zárójelezés 2. Operandusok prioritása 3. Azonos prioritás esetén balról-jobbra szabály, kivétel az értékadás, amely jobbról-balra értékelıdik ki. A kifejezésekben a metódushívások ("függvény hívások") sorrendje is a kiértékelés sorrendjét követi. Java II.: Alapelemek JAVA2 / 20 Utasítás, s, blokk Utasítás lehet: kifejezés utasítás deklarációs utasítás. Az utasításokat pontosvesszı zárja. Kifejezés utasítás csak a következı lehet: értékadás, ++ és -- operátorokkal képzett kifejezések, metódushívás, példányosítás. Java II.: Alapelemek JAVA2 / 21 Java2 / 7

Utasítás, s, blokk (folyt.) A deklarációs és kifejezés utasítások tetszıleges sorrendben követhetik egymást. Az utasítások sorozata {} jelek közé zárva a blokk. Utasítás helyére mindig írható blokk. Java II.: Alapelemek JAVA2 / 22 Vezérl rlı utasítások sok Lényegében megegyeznek a C utasításaival. Különbségek: Az if, while, do utasításokban a feltétel csak logikai kifejezés lehet. A for utasításban a második kifejezés csak logikai kifejezés lehet A switch utasításban a szelektor csak egész kifejezés lehet. Nincs goto utasítás. Java II.: Alapelemek JAVA2 / 23 Java2 / 8