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

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

Java I. A Java programozási nyelv

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

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelv Java

Java I. A Java programozási nyelv

I. Bevezetés. 1. ábra A Java "logója"

A Java programozási nyelv

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Programozási technológia I.

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

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

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

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

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

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

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

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

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

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

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

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

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

Java programozási nyelv

Adatbázis és szoftverfejlesztés elmélet

Bevezetés a Java programozási nyelvbe

Java II. I A Java programozási nyelv alapelemei

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

Bevezetés a Java programozási nyelvbe

Osztályok. 4. gyakorlat

A C# programozási nyelv alapjai

Java Programozás 11. Ea: MVC modell

Informatika terméktervezőknek

és az instanceof operátor

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

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

Segédanyag: Java alkalmazások gyakorlat

A C# PROGRAMOZÁSI NYELV

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Szoftvertervezés és -fejlesztés I.

JAVA PROGRAMOZÁS 3.ELŐADÁS

GYAKORLATIAS JAVA MINTA

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Készítette: Nagy Tibor István

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

OOP: Java 1.Gy: Java alapok

JAVA webes alkalmazások

Programozás I. Első ZH segédlet

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

Programozási technológia

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

Programozási nyelvek Java

Globális operátor overloading

A Java nyelv. Bevezetés, alapok Elek Tibor

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

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

A NYELV NEVE. Kezdetben: Oak. James Gosling. Java: Sun Mycrosystems védjegyev

Java II. I A Java programozási nyelv alapelemei

Mobil Informatikai Rendszerek

Programozási nyelvek Java

Bevezetés a programozásba I.

Java és web programozás

Java Programozó képzés A&K AKADÉMIA 2019.

Pénzügyi algoritmusok

Java felhasználói felület

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

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

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

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?

Mobil Informatikai Rendszerek

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

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

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

OOP: Java 8.Gy: Gyakorlás

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Abstract osztályok és interface-ek. 7-dik gyakorlat

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

Java Programozás 3. Gy: Java GUI. Swing, AWT

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

Adatszerkezetek és algoritmusok

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

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

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

JAVA programozási. fejlesztőkörnyezetben

Adatszerkezetek és algoritmusok

Szkriptnyelvek. 1. UNIX shell

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Android alapok. Android játékfejlesztés

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

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

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

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

C++ programozási nyelv

Szoftvertervezés és -fejlesztés I.

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

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

C programozási nyelv

OOP: Java 4.Gy: Java osztályok

Átírás:

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