JAVA ALKALMAZÁSOK 1. ELŐADÁS 2/22/2017 1
TARTALOM Bevezető okövetelmények és Jegyzetek Az első csésze kávé Java fejlesztőkörnyezet és IDE bemutatása oaz első alkalmazás obájtkód (javac), Fordítás bájtkódra, majd a bájtkód futtatása Java programozási nyelv Java platform Java Technológia Változók, primitív típusok (+ végleges változók), referencia típusok Operátorok használata 2/22/2017 2
Bevezető (Követelmények és jegyzetek) 2/22/2017 3
BEVEZETŐ - KÖVETELMÉNYEK Nappali tagozat: oelméleti ZH: 40 pont (minimum 20 pont) Teszt, kifejtő kérdések, kódrészletek értelmezés és kiegészítése Április 24. és május 8. ogyakorlati ZH: 60 pont (minimum 30 pont) Géptermi ZH Utolsó előtti és utolsó gyakorlaton 2/22/2017 4
JEGYZETEK Nagy G.: Java programozás v1.3, Creative Commons, Kecskemét,2007. Spell, B.: Pro Java 8 Programming, Apress, Third Edition, California, 2015. 2/22/2017 5
Az első csésze kávé Java fejlesztőkörnyezet és IDE bemutatása 2/22/2017 6
AZ ELSŐ CSÉSZE KÁVÉ JAVA FEJLESZTŐKÖRNYEZET Java 2 Platform, Standard Edition 8.0 Szükséges a JDK (Java Development Kit), nem a JRE ohttp://www.oracle.com/technetwork/java/javase/downl oads/index-jsp-138363.html 2/22/2017 7
AZ ELSŐ CSÉSZE KÁVÉ JAVA FEJLESZTŐKÖRNYEZET Továbbá szükséges a környezeti változó elérési útjának beállítása olinux esetén parancssorból: export PATH = $SPATH:/opt/java/bin:. export CLASSPATH=$CLASSPATH:. :/home/munka owindows esetén parancssorból (vagy GUI felületről is beállítható): SET PATH=%PATH%;c:\Program Files\java\jdk1.5.1\bin ;. SET CLASSPATH=%CLASSPATH%;. ;c:\munka\ 2/22/2017 8
AZ ELSŐ CSÉSZE KÁVÉ INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE) JCreator IDE: oa JCreator Java programozásra alkalmas editor. ohttp://www.jcreator.com/ Netbeans IDE: oa Netbeans a Sun saját fejlesztőkörnyezete a Java platformokhoz. ohttp://netbeans.org/downloads/ Eclipse IDE: oaz Eclipse nyílt forráskódú, platformfüggetlen szoftverkeretrendszer. ohttp://www.eclipse.org/ 2/22/2017 9
AZ ELSŐ CSÉSZE KÁVÉ INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE) Jcreator IDE: 2/22/2017 10
AZ ELSŐ CSÉSZE KÁVÉ INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE) Netbeans IDE: 2/22/2017 11
AZ ELSŐ CSÉSZE KÁVÉ INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE) Eclipse IDE: 2/22/2017 12
AZ ELSŐ ALKALMAZÁS LÉTREHOZÁSA A BÁJTKÓD A forrásállományból a fordítás hatására előálló bájtkódot különböző Java Virtuális Gépet, JVM-et tartalmazó operációs rendszeren tudjuk futtatni. A forrásállományok kiterjesztése:.java A Java nyelvben és az állománynévben is különbséget kell tenni kis-, és nagybetű között. Class HelloworldApp { Public static void main(string[] args) { System.out.println( Hello world! ); } } 2/22/2017 13
FORDÍTÁS BÁJTKÓDRA, MAJD A BÁJTKÓD FUTTATÁSA Fordítás: oa javac (bin\javac.exe) fordító a szövegből olyan utasításokat állít elő, amelyeket a JVM (Java Virtual Machine, Java virtuális gép) végre tud hajtani. oa bájtkódú programállomány kiterjesztése.class. oparancssori ablak megnyitása, majd indítsuk el a javac fordítót: javac path\to\helloworld.java 2/22/2017 14
FORDÍTÁS BÁJTKÓDRA, MAJD A BÁJTKÓD FUTTATÁSA Futtatás: oa Java értelmező (bin\java.exe) a számítógépre telepített Java VM számára értelmezi a bájtkódú program utasításait, a VM pedig futtatja azokat. okiterjesztés nélkül kell megadni a HelloWorld.java osztályt: java path\to\helloworld 2/22/2017 15
FUTTATHATÓ.JAR FÁJL LÉTREHOZÁSA NESTBEANS-BEN Java Archive (.jar) fájl létrehozása Netbeansben: Run / Clean and Build Project A.jar fájl helye: C:\...\Netbeans Project\ProName\dist\ ProName.jar 2/22/2017 16
A Java programozási nyelv 2/22/2017 17
JAVA PROGRAMOZÁSI NYELV A Java egy magas szintű nyelv a következő főbb jellemzőkkel: o Egyszerű o Objektumorientált o Előfordított o Értelmezett o Robusztus o Biztonságos o Semleges architektúrájú o Hordozható o Nagy teljesítményű o Többszálú o Dinamikus 2/22/2017 18
JAVA PROGRAMOZÁSI NYELV A legtöbb programozási nyelv esetén fordítást vagy értelmezést hajtunk végre, mielőtt a program futna a számítógépen. Java esetén a kettő keverékéről beszélünk. 2/22/2017 19
JAVA PROGRAMOZÁSI NYELV A forrásállományt (.java) a Compiler egy közbülső nyelvre fordítja, így Java bájtkódot állít elő. Ez a platformfüggetlen kódot értelmezi és futtatja a JVM. A fordítás egy alkalommal történik meg, az értelmezés pedig minden alkalommal, ahányszor a program végrehajtódik. 2/22/2017 20
COMPILER ÉS JAVA VIRTUAL MACHINE Java Virtual Machine (Java Virtuális Gép): obájtkódot gépi kóddá alakítja oa Java bájtkód futtatható minden tetszőleges operációs rendszeren, amely JVM-et tartalmaz 2/22/2017 21
Java platform 2/22/2017 22
JAVA PLATFORM Szoftverplatform, más hardver alapú platformokra épül Java platform két komponense: ojava VM (Java Virtual Machine) ojava API (Java Application Iprogramming Interface) Több ezer, használatra kész szoftverkomponenst tartalmaz Az osztályok és interface-ek csomagokba vannak szervezve 2/22/2017 23
JAVA PLATFORM A platform hardver vagy szoftverkörnyezet, ahol a programok futnak. A legtöbb platform a hardvert és az operációs rendszert jelenti. A Java platform annyiban különbözik a legtöbb más platformtól, hogy teljesen szoftverplatform, és más hardver alapú platformokra épül. 2/22/2017 24
JAVA PLATFORM Java platform két komponense: ojava VM (Java Virtual Machine) ojava API (Java Application Iprogramming Interface) Több ezer, használatra kész szoftverkomponenst tartalmaz Az osztályok és interface-ek csomagokba vannak szervezve 2/22/2017 25
JAVA PLATFORM A JAVA PALTFORM MŰKÖDÉSE 2/22/2017 26
JAVA PLATFORM A platform-független Java kód valamivel lassabb, mint a natív kód. ojó fordítóval, optimalizált értelmezővel és JIT bájtkód fordítóval a különbség elég kicsi lehet ojit (Just In Time) Az első futtatás előtt natív kódra fordul a bájtkód További futtatáskor már a natív kód futtatható oaz első futtatás több ideig tarthat 2/22/2017 27
Java technológia 2/22/2017 28
JAVA TECHNOLÓGIA Többféle alkalmazás készíthető Java nyelven: oasztali alkalmazás: közvetlenül a Java platformon futtatható oservlet: szerver oldalon fut, de nem önállóan, hanem egy szerver-futtatókörnyezet részeként. 2/22/2017 29
JAVA TECHNOLÓGIA omidlet: a mobil telefonon, kézi számítógépen futó alkalmazást hívjuk midletnek. oapplet: olyan program, amely bizonyos megszorításokkal futtatható Javát ismerő böngészőben. Kezdetben látványos grafikus effektusok készítésére alkalmazták, mára ez a felhasználás visszaszorult. 2/22/2017 30
JAVA TECHNOLÓGIA Az API biztosítja a következőket: oalap összetevők: objektumok, stringek, szálak, számok, I/O, adatstruktúrák, dátum és időkezelés, stb. ohálózatok: URL, TCP, UDP, socket-ek, IP címzés onemzetközi programozás: Segítség az egész világon használható alkalmazások írásához. A programok könnyeden tudnak alkalmazkodni a helyi sajátosságokhoz, és többféle nyelven kommunikálni a felhasználókkal. 2/22/2017 31
JAVA TECHNOLÓGIA obiztonság: alacsony es magas szintű vedelem, beleértve az elektronikus aláírást, titkos-, es nyilvános kulcsú titkosítást, hozzáférés-szabályozást es azonosítást oszoftver komponensek: a JavaBeans használatával könnyen összeilleszthető komponenseket fejleszthetünk oobjektum szerializáció: lehetővé teszi a könnyűsúlyú perzisztenciát es az RMI-t 2/22/2017 32
JAVA TECHNOLÓGIA ojdbc: relációs adatbázis-kezelők szeles köréhez nyújt egységes elérési felületet oa Java platform ezen felül tartalmaz API-t a 2D és 3D grafikához, szerverekhez, telefóniához, beszédfeldolgozáshoz, animációhoz stb 2/22/2017 33
Változók, primitív típusok, referencia típusok 2/22/2017 34
VÁLTOZÓK ÉS PRIMITÍV TÍPUSOK Konvenció a változó nevére: o camelcase konvenció Első szó kisbetűvel kezdődik, a többi nagybetűvel. o Nem kezdődhet számmal o Nem lehet foglalt név, egyedinek kell lennie o Android: Nem statikus és privát osztály tagváltozók esetén: private int mvariable; Statikus adattagok esetén: private static int svariable; Publikus, statikus, final változó esetén: public static final int ALL_CAPS_WITH_UNDERSCORES; 2/22/2017 35
VÁLTOZÓK ÉS PRIMITÍV TÍPUSOK Primitív típusok: byte, short, int, long, float, double, char, boolean Példák: int mintvariable = 13; double mdoublevariable = 3.14; float mfloatvariable = 3.14f; char mcharvariable = a ; String mstringvariable = karakterlánc ; 2/22/2017 36
VÁLTOZÓK ÉS PRIMITÍV TÍPUSOK - VÉGLEGESÍTÉS final kulcsszóval tehető egy változó véglegessé Értéke inicializálás után nem változtatható meg (más nyelvekben ezt konstans változónak hívják) Nem kötelező inicializálni egyből, de addig nem használható a változó Konvenció, hogy a változó neveiben szereplő szavakat nagybetűvel kell írni és a szavakat aláhúzás karakterrel elválasztani. Pl.: final int NUMBER_OF_MARKS = 5; 2/22/2017 37
REFERENCIA TÍPUSOK Tömb típus int[] tmb = new int[3]; tmb[0] = 13; Osztály típus Scanner scanner = new Scanner(System.in); Interfész típus ActionListener actionlistener = new ActionListener() { public void actionperformed(actionevent e) { } }; 2/22/2017 38
Operátorok használata 2/22/2017 39
OPERÁTOROK Operátor Használat Leírás + op1 + op2 op1 és op2 összeadása, String összefűzés - op1 op2 op1 és op2 különbsége * op1 * op2 op1 és op2 szorzása / op1 / op2 op1 és op2 hányadosa % op1 % op2 op1 és op2 egész osztás maradéka Operátor Alkalmazás Leírás > op1 > op2 true-t ad vissza, ha op1 nagyobb, mint op2 >= op1 >= op2 true-t ad vissza, ha op1 nagyobb vagy egyenlő, mint op2 < op1 < op2 true-t ad vissza, ha op1 kisebb, mint op2 <= op1 <= op2 true-t ad vissza, ha op1 kisebb vagy egyenlő, mint op2 == op1 == op2 true-t ad vissza, ha op1 megegyezik op2-vel!!op1 true-t ad vissza, ha op1 értéke false volt!= op1!= op2 true-t ad vissza, ha op1 értéke nem egyenlő op2 értékével 2/22/2017 40
OPERÁTOROK Operátor Jelentése Leírás ++op1 op1 = op1 + 1 Prefix-inkrementálása op1-nek op1++ op1 = op1 + 1 Postfix-inkrementálása op1-nek Operátor Alkalmazás Leírás && op1 && op2 Logikai ÉS művelet op1 op2 Logikai VAGY művelet & op1 & op2 Bitenkénti ÉS művelet op1 op2 Bitenkénti VAGY művelet ^ op1 ^ op2 Bitenkénti Tagadás << op1 << op2 Op1 bitjeit op2 értékével balra lépteti, jobbról nullákkal tölti fel >> Op1 >> op2 Op1 bitjeit op2 értékével jobbra lépteti, balról a legnagyobb helyértékű bitet tölti fel 2/22/2017 41
OPERÁTOR PRECEDENCIA SZINTEK Kifejezés Leírás expr++ expr-- Postfix ++expr --expr +expr -expr ~! Unáris * / % Multiplikatív + - Additív << >> <<< >>> Léptetés < > <= >= instanceof Relációs ==!= Egyenlőség & Bitenkénti ÉS ^ Bitenkénti KIZÁRÓ VAGY Bitenkénti VAGY && Logikai ÉS Logikai VAGY?: Feltételes 2/22/2017 42 = += -= *= /= %= &= ^= = <<= >>= >>>= Értékadás
OPERÁTOR PRECEDENCIA SZINTEK Példa: 2/22/2017 43
IRODALOMJEGYZÉK Nagy G.: Java programozás v1.3, Creative Commons, Kecskemét,2007., pp. 9-16., 25-29., 32.-41. 2/22/2017 44