44
J AVA ALKALMAZÁSOK 1. ELŐADÁS 2/22/2017 1

Java alkalmazások - ELTE

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java alkalmazások - ELTE

JAVA ALKALMAZÁSOK 1. ELŐADÁS

2/22/2017 1

Page 2: Java alkalmazások - ELTE

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

Page 3: Java alkalmazások - ELTE

Bevezető (Követelmények és jegyzetek)

2/22/2017 3

Page 4: Java alkalmazások - ELTE

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

Page 5: Java alkalmazások - ELTE

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

Page 6: Java alkalmazások - ELTE

Az első csésze kávé – Java fejlesztőkörnyezet és IDE bemutatása

2/22/2017 6

Page 8: Java alkalmazások - ELTE

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

Page 9: Java alkalmazások - ELTE

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

Page 10: Java alkalmazások - ELTE

AZ ELSŐ CSÉSZE KÁVÉ – INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE)

Jcreator IDE:

2/22/2017 10

Page 11: Java alkalmazások - ELTE

AZ ELSŐ CSÉSZE KÁVÉ – INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE)

Netbeans IDE:

2/22/2017 11

Page 12: Java alkalmazások - ELTE

AZ ELSŐ CSÉSZE KÁVÉ – INTEGRÁLT FEJLESZTŐI KÖRNYEZET (IDE)

Eclipse IDE:

2/22/2017 12

Page 13: Java alkalmazások - ELTE

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

Page 14: Java alkalmazások - ELTE

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

Page 15: Java alkalmazások - ELTE

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

Page 16: Java alkalmazások - ELTE

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

Page 17: Java alkalmazások - ELTE

A Java programozási nyelv

2/22/2017 17

Page 18: Java alkalmazások - ELTE

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

Page 19: Java alkalmazások - ELTE

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

Page 20: Java alkalmazások - ELTE

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

Page 21: Java alkalmazások - ELTE

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

Page 22: Java alkalmazások - ELTE

Java platform

2/22/2017 22

Page 23: Java alkalmazások - ELTE

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

Page 24: Java alkalmazások - ELTE

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

Page 25: Java alkalmazások - ELTE

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

Page 26: Java alkalmazások - ELTE

JAVA PLATFORM – A JAVA PALTFORM MŰKÖDÉSE

2/22/2017 26

Page 27: Java alkalmazások - ELTE

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

Page 28: Java alkalmazások - ELTE

Java technológia

2/22/2017 28

Page 29: Java alkalmazások - ELTE

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

Page 30: Java alkalmazások - ELTE

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

Page 31: Java alkalmazások - ELTE

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

Page 32: Java alkalmazások - ELTE

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

Page 33: Java alkalmazások - ELTE

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

Page 34: Java alkalmazások - ELTE

Változók, primitív típusok, referencia típusok

2/22/2017 34

Page 35: Java alkalmazások - ELTE

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

Page 36: Java alkalmazások - ELTE

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

Page 37: Java alkalmazások - ELTE

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

Page 38: Java alkalmazások - ELTE

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

Page 39: Java alkalmazások - ELTE

Operátorok használata

2/22/2017 39

Page 40: Java alkalmazások - ELTE

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

Page 41: Java alkalmazások - ELTE

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

Page 42: Java alkalmazások - ELTE

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

Page 43: Java alkalmazások - ELTE

OPERÁTOR PRECEDENCIA SZINTEK

Példa:

2/22/2017 43

Page 44: Java alkalmazások - ELTE

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