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

Hasonló dokumentumok
Szoftvertechnológia alapjai Java előadások

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

Java II. I A Java programozási nyelv alapelemei

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

A C# programozási nyelv alapjai

Szoftvertervezés és -fejlesztés I.

Java II. I A Java programozási nyelv alapelemei

Készítette: Nagy Tibor István

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

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

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

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

Programozás I. Első ZH segédlet

Programozási nyelv Java

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Programozási nyelvek (ADA)

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

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

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

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

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

A Java programozási nyelv

A C programozási nyelv I. Bevezetés

Alkalmazott Modul III 2. előadás. Procedurális programozás: adattípusok, elemi programok

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

Informatika terméktervezőknek

Alkalmazott Modul III 2. előadás. Procedurális programozás: adattípusok, elemi programok. A procedurális programozás Koncepciója

Java programozási nyelv

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

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

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

A C programozási nyelv I. Bevezetés

Objektumorientált Programozás II.

Programozási technológia I.

GYAKORLATIAS JAVA MINTA

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

Készítette: Nagy Tibor István

Java programozási nyelv 6. rész Java a gyakorlatban

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

Apple Swift kurzus 3. gyakorlat

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

Java I. A Java programozási nyelv

és az instanceof operátor

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

JAVA ALKALMAZÁSOK 1. ELŐADÁS 2/22/2017 1

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

Bevezetés a C++ programozási nyelvbe

Programozás I gyakorlat

Python tanfolyam Python bevezető I. rész

A Java nyelv. Bevezetés, alapok Elek Tibor

Globális operátor overloading

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

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

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

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

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

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

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

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

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

Programozási nyelvek Java

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

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

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

Java. JIT (Just in Time) fordítók alkalmazása, optimalizálás AOT (Ahead of Time) fordítók alkalmazásának lehetősége

3 A C programozási nyelv szintaktikai egységei

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

Eseményvezérelt alkalmazások fejlesztése II 1. előadás. A.NET keretrendszer és a C# programozási nyelv. A.NET keretrendszer Eredete

Programozási nyelvek Python

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

A Java nyelv. II. rész - alapok, osztályok /2 53

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Imperatív programozás

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Adatszerkezetek és algoritmusok

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Programozás 1. Dr. Iványi Péter

Programozási Nyelvek (C++) Összefoglaló

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

C programozás. 1 óra Bevezetés

Java programozási nyelv

Aritmetikai kifejezések lengyelformára hozása

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

Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés

Információs Technológia

Interfészek. PPT 2007/2008 tavasz.

Pénzügyi algoritmusok

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

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

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

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

OOP: Java 8.Gy: Abstract osztályok, interfészek

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Bevezetés a programozásba Előadás: A const

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Programozási technológia I 1. gyakorlat A Java nyelvi alapjai, a NetBeans környezet 2012.02.16. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

A nyelv lehetőségei Tisztán objektumorientált programozási nyelv, amelyet a Sun Microsystems 1995-ben publikált a legnépszerűbb programozási nyelv (17%-os népszerűség a TIOBE toplistán) jelenlegi verzió a Java 7, az Oracle tulajdonában A fejlesztési elvek: egyszerű, objektumorientált és ismerős legyen rugalmas és biztos legyen platform-független és hordozható legyen nagy teljesítménnyel fusson értelmezett, többszálú és dinamikus legyen ELTE IK, Programozási technológia I 1:2

A nyelv lehetőségei Célja egy C++-szerű, de könnyebben kezelhető nyelv megvalósítása, amely teljes mértékben hordozható és alkalmas webes, hálózati valamint mobil alkalmazások készítésére Három változatban érhető el a különböző célokra: Standard Edition (SE), Enterprise Edition (EE), Micro Edition (ME), Az Oracle-től független fejlesztést végez a Google az Android platformon, amely egy Linuxra épülő saját Java virtuális gép és ré épülő osztálykönyvtár ELTE IK, Programozási technológia I 1:3

A Java környezet A Java egy teljes keretrendszert biztosít számos platformra a hordozhatóság végett a programkód gépfüggetlen bytekódra (köztes szintű kódra) fordul ezt interpretálja a futtatási környezet (Java Virtual Machine, JVM) futásidejű fordítással (Just In Time Compilation) így elég az alkalmazásokat egyszer fordítani, és utána bárhol futtathatóak, ahol jelen van a környezet (Java Runtime Environment), amely magában foglalja a virtuális gépet, valamint a nyelvi könyvtárakat cserébe a végrehajtás lassabb, az erőforrásigény magasabb, mint a teljesen fordított alkalmazásokban ELTE IK, Programozási technológia I 1:4

A Java környezet Programnyelvi kód Fordítóprogram Köztes nyelvű kód Keretrendszer Virtuális gép Nyelvi könyvtár Gépi kód ELTE IK, Programozási technológia I 1:5

A nyelv lehetőségei Támogatja az objektumorientáció minden eszközét osztályok, objektumok adatabsztrakció, adatelrejtés, egységbe zárás öröklődés, polimorfizmus, dinamikus kötés kivételkezelés, sablonok Fordítási egységek a fájlok ha a fájlban van publikus típus, akkor a neve megegyezik a fájléval (tehát egy fájlban csak egy publikus típus lehet) a forrásfájl kiterjesztése: java, a bytekód kiterjesztése: class a bytekód fájlok összecsomagolva is futtathatóak, ekkor a kiterjesztés: jar ELTE IK, Programozási technológia I 1:6

A Hello World program import Java.io.*; // ki- és bementért felelős csomagok használata class Hello { // még a főprogram is osztályban van public static void main( String[] args ){ // a főprogram egy statikus metódus } } System.out.println("Hello World!"); // a kiírás a megfelelő metódushívás ELTE IK, Programozási technológia I 1:7

Karakterkódolás, literálok A kódoláshoz 16 bites Unicode karakterkészletet használ Számliterálok: decimális: 377, oktális: 0377, hexadecimális: 0x377 64 bites tárolás: 377L lebegőpontos: 12.0, 12.6e4, szimpla pontosság: 12.6e4F, dupla pontosság: 12.6e4D lebegőpontos nulla: 0.0, -0.0 Szövegliterálok: karakterek: 'k', szöveg: "hello" speciális karakterek: \\, \n, \t, \', \", \b (vissza), \r (sorvissza), \f (lapdobás) ELTE IK, Programozási technológia I 1:8

Vezérlési szerkezetek Szekvencia: <utasítás>; Programblokk: { <utasítás> } utasítások csoportosítására megszabja az élettartamot (programblokkon belül deklarált változó csak a programblokk végéig érhető el) Elágazások: if(<feltétel>) <utasítás>; else <utasítás>; a feltétel logikai típusú kifejezés tetszőlegesen egymásba ágyazhatóak (nincs elif) a csellengő else mindig az utolsó elágazáshoz tartozik Triáris operátor (elágazó értékadáshoz): <feltétel>? <utasítás> : <utasítás>; ELTE IK, Programozási technológia I 1:9

Vezérlési szerkezetek switch(<változó>){ case <konstans> : <utasítások>; break; default: <utasítások>; break; } alkalmazható egész és szöveg változókra, felsorolási típusokra alapértelmezett (default) ág nem kötelező Ciklusok: számláló: for(<inicializálás>; <feltétel>; <léptetés>) <utasítás>; előtesztelő: while(<feltétel>) <utasítás>; ELTE IK, Programozási technológia I 1:10

Vezérlési szerkezetek utántesztelő: do <utasítás>; while(<feltétel>); iteráló (tetszőleges gyűjtemény bejárásához): for (<típus> <változó>: <adatszerkezet>) <utasítás> ciklusból azonnali kilépés a break utasítással feltétel kiértékeléshez ugrás a continue utasítással Pl.: public static void main(string[] args){ int fakt = 1; // faktoriális számítás for (int i = 1; i <= 5; ++i) fakt = fakt * i; System.out.println(fakt); // eredmény: 120 } ELTE IK, Programozási technológia I 1:11

Operátorok Az operátorok olyan függvények, amelyek speciális meghívással rendelkeznek, vezérlőkaraktereken, vagy kulcsszavakon keresztül a meghívás rögzített formában történik (prefix, postfix vagy infix jelölés mellett) az operátorok precedenciával rendelkeznek, amely halmozás esetén megszabja a hívási sorrendet az operandusok száma rögzített, vannak egy-, két-, illetve háromoperandusú műveletek (a + és operátortoknak van egy-, illetve kétoperandusú változata is) Minden beépített típus rendelkezik operátorokkal, amelyek a megadott működést végzik ELTE IK, Programozási technológia I 1:12

Operátorok Aritmetikai: pozitivitás (+a), negáció (-a) értéknövelés (a++, ++a), értékcsökkentés (a--, --a) összeadás (a + b), kivonás (a - b), szorzás (a * b), osztás (a / b), maradékképzés (a % b) Értékadás: egyszerű (a = b) összetett (a += b, a -= b, a *= b, a /= b, a %= b, a <<= b, a >>= b, a >>>= b, a &= b, a = b, a ^= b) feltételes (a? b : c) Típusazonosítás (instanceof) ELTE IK, Programozási technológia I 1:13

Operátorok Logikai: érték összehasonlítás (a < b, a > b, a <= b, a >= b, a == b, a!= b) tagadás (!a), és (a && b), vagy (a b) Bitenkénti: eltolás balra (a << b), eltolás jobbra (a >> b), előjel nélküli eltolás jobbra (a >>> b) komplementer képzés (~ a), bitenkénti és (a & b), bitenkénti vagy (a b), különbségképzés (a ^ b) ELTE IK, Programozási technológia I 1:14

Operátorok precedenciája Az operátorok precedenciája meghatározza, a műveletek halmozása esetén milyen sorrendben történik a végrehajtás a precendencia típusfüggetlen, és rögzített a magasabb precendenciájú hajtódik előbb végre zárójelek befolyásolják a végrehajtási sorrendet Java precedenciák: 1. ++ (postfix), -- (postfix) 2. + (unáris), - (unáris),!, ~, ++ (prefix), -- (prefix), 3. *, /, % 4. +, - 5. <<, >>, >>> 6. >, <, >=, <=, instanceof ELTE IK, Programozási technológia I 1:15

Operátorok precedenciája 7. ==,!= 8. & 9. ^ 10. 11. && 12. 13.?: 14. =, +=, -=, *=, /=, %=, <<=, >>=, &=, =, ^= Pl.: a * b c == 7 jelentése: ((a * b) c) == 7 c = a == b % 2 jelentése: c = (a == (b % 2)) ++a++ jelentése: ++(a++) ELTE IK, Programozási technológia I 1:16

Csomagok A programok tagolása magasabb szinten csomagokkal történik, egy csomagban tetszőleges számú további csomag, illetve osztály helyezkedhet el a csomagok az osztályok logikai összetartozását fejezik ki egy típus pontosan egy csomagba tartozik alapértelmezett a névtelen csomag Csomag definíció: package <csomagnév>; package <csomagnév>.<alcsomagnév>; Csomag használat: import package <csomagnév>.*; import package <csomagnév>.<típusnév>; ELTE IK, Programozási technológia I 1:17

Típusrendszer Erősen típusos a nyelv automatikus konverzió altípusra explicit konverzió saját típusokra futásidejű ellenőrzéssel Típusok kezelése: primitív típusok: érték szerint, automatikus kezdőértékkel blokk végig, vagy az objektum törléséig élnek összetett típusok: referencia (igazából mutató) szerint, null kezdőértékkel a new operátorral példányosíthatóak a törlést a szemétgyűjtő végzi, nincs manuális törlés ELTE IK, Programozási technológia I 1:18

Típusrendszer Primitív típusok: boolean (true vagy false) char (16 bites Unicode karakter) byte (8 bites előjeles egész) short (16 bites előjeles egész) int (32 bites előjeles egész) long (64 bites előjeles egész) float (32 bites lebegőpontos szám) double (64 bites lebegőpontos szám) Összetett típusok: osztályok, interfészek, felsorolási típusok, tömbök ELTE IK, Programozási technológia I 1:19

Tömbök és felsorolási típus Tömbök: indexelés 0-tól hossz-1-ig szétválasztódik a deklaráció és a definíció: <típus>[] <név>; <név> = new <típus>[<méret>]; lehet inicializálni: <típus>[] <név> = { <kezdőértékek> }; tisztában van a hosszával: <név>.length másolás az arraycopy művelettel több dimenziós előállítható tömbök tömbjeként Felsorolási típus: enum <típusnév> { <értékek> } rendelkezhet attribútumokkal, függvényekkel, konstruktorral ELTE IK, Programozási technológia I 1:20

Tömbök és felsorolási típus Pl. egy vektor (egy dimenziós tömb): int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) arr[i] = i + 1; // tömb értékei 1..10 lesznek Pl. egy mátrix (két dimenziós tömb): String[][] names = {{"Mr. ", "Mrs. ", "Ms. "}, {"Smith", "Jones"}}; // mátrix, aminek első sora a megszólítások // (3 hosszú), második a nevek (2 hosszú) System.out.println(names[0][0] + names[1][0]); // eredménye: Mr. Smith System.out.println(names[0][2] + names[1][1]); // eredménye: Ms. Jones ELTE IK, Programozási technológia I 1:21

Tömbök és felsorolási típus Pl. felsorolási típus: enum Napok { Hétfő, Kedd, Szerda, Csütörtök }; // napokat tartalmazó felsoroló típus Napok mainap; // mai nap bekérése... switch (mainap) { case Hétfő: System.out.println("Még 5 nap"); break; case Kedd: System.out.println("Még 4 nap"); break; default: System.out.println("Nem munkanap"); break; } ELTE IK, Programozási technológia I 1:22