Upload
others
View
19
Download
0
Embed Size (px)
Citation preview
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 platform-fü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
2/22/2017 40
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
OPERÁTOROK
2/22/2017 41
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
OPERÁTOR PRECEDENCIA SZINTEK
2/22/2017 42
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
= += -= *= /= %= &= ^= |= <<= >>= >>>= É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