89
JAVA PROGRAMOZÁS 1.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda 1.ELŐADÁS Java bevezetés, nyelvi alapelemek 2014-2015 tavasz

JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Embed Size (px)

Citation preview

Page 1: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

JAVA PROGRAMOZÁS1.ELŐADÁS

Dr. Pál László, Sapientia EMTE, Csíkszereda

1.ELŐADÁS

Java bevezetés, nyelvi alapelemek2014-2015 tavasz

Page 2: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Előadás tematika2

1.Előadás:

Bevezetés a Java nyelvbe: Java történet, Java nyelv tulajdonságai, Szintaxis,

Programozói környezet, Egyszerű példák

A Java nyelv alapelemei: változók, konstansok, metódusok, osztályok,

objektumok, tömbök, vezérlési szerkezetek, operátorok.

Csomagok használata és importálása.

2. Előadás: Objektumorientált programozás Javá-ban:

Az osztályok részletes ismertetése. Példányváltozók, metódusok, metódusok

hívása, metódus nevek túlterhelése objektumok használata, hozzáférési

kategóriák. Statikus tagok: osztályváltozók, osztálymetódusok.

Konstruktorok, túlterhelés, láthatóság, getter-setter metódusok.

Objektumorientált programozás Javá-ban:

3. Előadás:

Objektumorientált programozás Javá-ban:

Konstruktorok, inicializáló blokkok, destruktor jellegű metódusok. Egységbe

zárás, öröklődés, polimorfizmus, absztrakt osztályok és metódusok.

Interfészek. Interfészek közötti öröklődés, interfészek implementálása.

Rendező interface-ek: Comparator, Comparable; Interface készítés; equals() és

hashCode() felüldefiniálása.

4. Előadás: Kivételkezelés Javá-ban

5. Előadás:Grafikus kezelői felület létrehozása (Java AWT) és esemény kezelés

Az AWT csomag, Layout manager, AWT komponensek, Appletek készítése

6. Előadás:Grafikus kezelői felület létrehozása (Java Swing)

SWING csomag, SWING komponensek

7. Előadás:

Java Input/Output:

Csatornák, leképzés fizikai adatszerkezetre, szűrők, véletlen elérésű file-ok,

kapcsolat a file rendszerrel, kivételek kezelése. Sorosítás.

8. Előadás: Hálózati alkalmazások készítése

A java.net package, ServerSocket, Socket, és DatagramSocket osztályok

9. Előadás: Szálak. Szálak jellemzői, létrehozása, vezérlése. Szinkronizálás.

10. Előadás: Java Kollekciók és generikus típusok

11. Előadás: Projektek védése

Page 3: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Labor tematika3

� Nagyjából követi az előadás tematikát. Kitűzött feladatok közös illetve egyéni megoldása. Házi feladatok bemutatása

� Fejlesztési eszközök:JDK 8 (Java Platform, Standard Edition) � JDK 8 (Java Platform, Standard Edition) (http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html)

� IDE szerkesztő: NetBeans� https://netbeans.org/� http://www.oracle.com/technetwork/articles/javase/index-

jsp-138363.html

Page 4: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Labor tematika – Fejlesztési eszközök4

� Egyéb fejlesztési eszközök:

� Eclipse� https://eclipse.org/home/index.php

� IntelliJ IDEAIntelliJ IDEA� https://www.jetbrains.com/idea/

� UML eszközök:� Visual Paradigm (Integrálható Netbeans-be, Eclipse-be)

� ArgoUML

� OpenAmeos

Page 5: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Könyvészet és dokumentáció5

� Könyvtári könyvek� Angster Erzsébet, Objektumorientált

tervezés és programozás. Java I-II.(Bazele programării orientate pe

obiecte), Ed. 4 Kör Bt., Budapesta, obiecte), Ed. 4 Kör Bt., Budapesta, 2002.

� Kathy Sierra, Bert Bates: Agyhullám: Java, Kiskapú, 2011.

Page 6: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Könyvészet és dokumentáció6

� Könyvtári könyvek� Antal Margit: Objektumorientált

programozás, Scientia Kiadó, 2007

� Más jegyzet:

� http://nagygusztav.hu/sites/default/files/csatol/java_programozas_1.3.pdf

Page 7: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Könyvészet és dokumentáció7

� Hasznos linkek

� http://docs.oracle.com/javase/7/docs/

� http://docs.oracle.com/javase/tutorial/

� http://www.tutorialspoint.com/java/� http://www.tutorialspoint.com/java/

� http://www.learnjavaonline.org/

� http://www.javatpoint.com/

Page 8: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Könyvészet és dokumentáció8

� Előadások, labor feladatok, egyéb dokumentációk megtálalhatok az alábbi linken:

http://www.emte.siculorum.ro/~pallaszlo/oktatas_hu.html (Java programozás)

Page 9: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Vizsgakövetelmények9

� Felmérési mód: kollokvium

� Zárthelyi: 60% (11. hét (Labor))� Gyakorlat + Elmélet

� Projekt: 30% (védés - 11. hét (Előadás))

� Házi feladat: 10% (2 hetes határidő)

� Mind a zárthelyi és projekt átmenő (5-ös) kell legyen a sikeres vizsgához

� Labor óra: max 3 hiányzás engedélyezett

� Részletes követelmények

Page 10: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Tartalom:

Java történet

1.Előadás10

1. Java történet

2. Java nyelv tulajdonságai

3. Programozói környezet

4. Java nyelv alapelemei: változók, konstansok, vezérlési szerkezetek, operátorok, metódusok, osztályok, objektumok, tömbök, csomagok használata

Page 11: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Programozási nyelvek rangsor 2014

� TIOBE � IEEE Spectrum

11

Page 12: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java nyelv bevezető

� a SUN Microsystems által kifejlesztett általános célú, objektumorientált programozási nyelv

� A fejlesztések a ‘90-es évek elején kezdődtek és folytatódtak egészen napjainkig

2009-ben az Oracle felvásárolta a SUN céget� 2009-ben az Oracle felvásárolta a SUN céget

� 2011-ben, Java 1.7-es verzió az Oracle gondozásában

� 2014-ben, 1.8-as verzió

� Szlogen: „write once, run anywhere”

Page 13: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java nyelv jellemzői

� Egyszerű

� Szintaxisa hasonlít a C, C++ nyelvekre, de számoselemet egyszerűsítettek. Automatikus memória kezelés

� Objektumorientált� Objektumorientált

� Elosztott

� Támogatja a HTTP, FTP protokollokat

� Robusztus, biztonságos

� Nincsenek pointerek

Page 14: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java nyelv jellemzői

� Architektúra semleges, hordozható

� Bájtkódot használ, amit a virtuális gép futtat

� Interpretált

� Just-In-Time (JIT) compiler� Just-In-Time (JIT) compiler

� Többszálú

� Párhuzamosításra lehet használni, ami hasznos lehet főleg több processzoros gépek esetén

Page 15: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java nyelv jellemzői

� A Java forráskód .java kiterjesztésű

� A forráskód .class kiterjesztésű fájlokba fordítódik

� A .class fájl bájtkódot tartalmaz (nem natív kód)

� A bájtkódot a Java Virtuális Gép (Java Virtual� A bájtkódot a Java Virtuális Gép (Java VirtualMachine) hajtja végre

Page 16: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java nyelv jellemzői

� A Java VM (JVM) tetszőleges operációs rendszerre telepíthető, ezért ugyanaz a bájtkód (.class) mindegyik operációs rendszeren fut

Page 17: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java kronológia

� 1991: James Gosling, Oak (tölgyfa) nyelv� 1996: JDK 1.0, fordító, virtuális gép, javac, appletek� 1997: JDK 1.1� 1988: J2SE 1.2, esemény kezelés, JIT� 2000: J2SE 1.3, J2EE, J2ME, JDBC, stb.� 2000: J2SE 1.3, J2EE, J2ME, JDBC, stb.� 2002: J2SE 1.4� 2004: J2SE 5.0, generikus osztályok � 2006: Java SE 6� 2011: Java SE 7� 2014: Java SE 8

Page 18: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java szabványok

� Java Standard Edition (J2SE)

� Kliens alkalmazások, appletek készítése

� Java Enterprise Edition (J2EE)� Szerver oldali alkalmazások készítése (Java Servlets, Java

Server Pages)Server Pages)

� Java Micro Edition (J2ME)� Mobil alkalmazások készítése

Page 19: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java keretrendszer – Java SE 819

� Java nyelv

� Eszközök, Java API

� javac, java, javadoc, jar, JConsole, stb.

� Felhasználói felületek� Felhasználói felületek

� JavaFX, AWT, Swing

� Integration libraries

� JDBC

� Java Virtuális gép

Page 20: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java keretrendszer – Java SE 820

Page 21: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java keretrendszer – Java SE 821

� Java platform leegyszerűsítve:

� Java VM

� Java API (Application Programming Interface): � Sok használatra kész szoftverkomponenst tartalmaz: Sok használatra kész szoftverkomponenst tartalmaz:

csomagokba szervezett osztályokat es interfészeket

Page 22: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java környezet22

� Java programok futtatása

� Elegendő a JRE (Java Runtime Environment)

� Java programok fejlesztése

� Java Development Kit (JDK)� Java Development Kit (JDK)� Tartalmazza a JRE-t és egyéb eszközöket:

� javac: Java fordító

� java: futtatóprogram

� javadoc: dokumentáció generáló

� jar: JAR fájlok kezelésére szolgál

� IDE: pld. NetBeans

Page 23: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Forrásprogram(.java) szerkezete23

Csomagok importálása

App a fordítási egység egyetlenpublikus osztálya

Main metódus: a program belépési pontja

Page 24: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Forrásprogram24

� Egy forrásfájl neve a fájlban implementált osztály nevével egyezik meg

� Ha a megvalósított osztály valamilyen csomagban (package) van, akkor a fájl a package nevével (package) van, akkor a fájl a package nevével azonos alkönyvtárba kell elhelyezni

Page 25: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Fordítás, futtatás parancssorból25

� Fordításhoz használható a javac parancs

� Példa: javac eloadasok\E1\Hello.java

Futtatás a paranccsal történik� Futtatás a java paranccsal történik

� Példa: java eloadasok.E1.Hello

� A Path környezeti változó beállítása szükséges

� Példa: set PATH=%PATH%;c:\ProgramFiles\Java\jdk1.8.0_31\bin\

Page 26: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Példa – Hello World!, NetBeans-ben26

Page 27: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Példa – Hello World!, NetBeans-ben27

Szerkesztés

Futtatás, kimenet:

Page 28: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

A Java nyelv alapelemei28

Page 29: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Azonosítók29

� A Java az Unicode karakterkészletet használja

� Betűvel kezdődik – betűvel vagy számmal folytatódik

� Case-sensitive, azaz különböznek a kis- és � Case-sensitive, azaz különböznek a kis- és nagybetűk

� Az azonosítók hossza nincs korlátozva

� A nyelv kulcsszavai nem lehetnek azonosítók

Page 30: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Megjegyzések30

� Javában a megjegyzés (comment) két típusú lehet:

� Egysoros megjegyzés:

// Ez egy egysoros megjegyzes

� Többsoros megjegyzés:� Többsoros megjegyzés:

/*

*/

� Dokumentációs megjegyzés:

/** … */

Page 31: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Literálok31

� Literál: egy állandó, amely beépül a program kódjába

� Egész literál: � Decimális: +125, -12

� Oktális: 021, 077

� Hexadecimális: 0xa1, 0xff� Hexadecimális: 0xa1, 0xff

� Valós literál� Tizedes: 3.14

� Lebegőpontos: -3.4e12

� Karakter literál: ‘a’, ‘X’, ‘\u0041’, ‘\t’

� Szöveg literál: “almafa”

Page 32: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Kivételes karakterek32

Page 33: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Egyszerű típusok (primitív)33

� boolean: logikai típus (true, false)

� char: 16 bites Unicode karakter

� byte: 8 bites egész szám (-128 - +127)

� short: 16 bit, (-32 768 - +32 767)� short: 16 bit, (-32 768 - +32 767)

� int: 32 bit (-2 147 483 648 - +2 147 483 647)

� long: 64 bit (-9 223 372 036 854 775 808 - +...)

� float: 32 bites lebegőpontos szám (-3,40292347E+38 -+3,40292347E+38)

� double: 64 bit (-1,79769313486231570E+308 - +...)

Page 34: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Változók34

� Változó: egy névvel azonosított memóriaterület

� Egy változónak mindig van azonosítója, adott méretű memóriahelye, típusa és aktuális értéke

� Javában minden változót deklarálni kell� Javában minden változót deklarálni kell

� Két típusú változó: egyszerű (primitív), referencia (lásd később)

� Deklarálás, inicializálás:

típus változo1 [=kifejezes1], változo2;

� Példa:

double x = 4.5, y;

Page 35: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Konstansok35

� Konstans:

� Egy változónak a „befagyasztása”, azaz nem engedjük megváltoztatni

� Nem összetévesztendő a literállal

� Kódolási konvenció: nagybetűvel írjuk

� Példa:

final int EVSZAM=2015;

Page 36: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Operátorok36

� Java kifejezés: operandusokból és operátorokból (műveletekből) áll.

� Operátor:

� Unáris: egyetlen operandusa van� Unáris: egyetlen operandusa van� Prefix: operandus előtt szerepel (++i)

� Postfix: operandus után szerepel (i--)

� Bináris: két operandusa van

Page 37: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Operátorok37

� Unáris postfix és prefix operátorok:

[ ] tömbképző (lásd később)

.(pont) minősítő operátor

(param) metódus képző(param) metódus képző

~, ! Bitenkénti operátorok

new példányosító operátor (lásd később)

(típus) kifejezés típuskényszerítő

+(plusz), -(minusz) előjel operátorok

++, -- léptető operátorok

Page 38: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Operátorok

� Aritmetikai operátorok:

+ összeadás

- kivonás

* szorzás

� Relációs operátorok:

> nagyobb

>= nagyobb vagy egyenlő

< kisebb

38

* szorzás

/ valós osztás

% maradékképzés

< kisebb

<= kisebb vagy egyenlő

= = egyenlő

! = nem egyenlő

Page 39: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Operátorok

� Logikai operátorok:

&& logikai és

|| logikai vagy

! logikai nem

� Feltételes kiértékelés:

(feltétel) ? kif1 : kif2

� Példa:int y = 70;

39

! logikai nem

& bitenkénti és

| bitenkénti vagy

^ bitenkénti nem

~ bitenkénti tagadás (negáció)

int y = 70;

int x = (y>50)?100:0;

Page 40: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Operátorok40

� Értékadó operátorok:

� = alapértékadó operátor, érték rendelése változóhoz

� Rövidített értékadó operátorok: +=, -=, *=, /=, %=, stb.

� Példa:

Page 41: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Kifejezések kiértékelési sorrendje41

� A kifejezések kiértékelési sorrendjét meghatározza:

� Zárójelezés

� Operandusok prioritása

� Azonos prioritás eseten balrol-jobbra szabály, kivétel az � Azonos prioritás eseten balrol-jobbra szabály, kivétel az értékadás, amely jobbrol-balra értékelődik ki.

Page 42: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Operátorok precedenciája42

Page 43: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Utasítások43

� Blokk utasítás: {…}

� Mindaz, amit abban a blokkban adunk meg, pontosan arra a blokkra érvényes

� Egy blokk utasításokból áll� Egy blokk utasításokból áll

� Minden utasítást pontosvessző zár le

Page 44: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Utasítások fajtái44

� Deklaráló utasítás (Memóriahelyek foglalása):int letszam;

� Értékadó utasítás (Memóriahelyek foglalása):int letszam;

� Postfix és prefix növelő és csökkentő utasítások :� Postfix és prefix növelő és csökkentő utasítások :letszam++; --letszam;

� Metódushívás: System.out.println("Hello");

� Példányosítás (Új objektum létrehozása):aDatum = new Datum(2000,11,05);

� Programvezérlő utasítás: if (i==0) ...

� Üres utasítás: ; (csak egy pontosvessző)

Page 45: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Típuskonverziók45

� Java erősen típusos nyelv: a fordító a típus kompatibilitásának az ellenőrzését minden esetben elvégzi

� Két szempont:Automatikus (implicit) vagy kényszerített (explicit) � Automatikus (implicit) vagy kényszerített (explicit) konverzió

� Szűkítő vagy bővítő konverzió

� Példa:

double d; int i = 5;

d = i; // int konvertálása doubel-re implicit módon. Bővités

Page 46: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Típuskonverziók46

� Példa:

d = 79.4;

i = (int)d; // double konvertálása int-re explicit módon. Szűkités ->79explicit módon. Szűkités ->79

i = d; //szintaktikai hiba

� A szűkítő konverzió információvesztéssel jár

Page 47: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Egyágú szelekció - if

� Példa

47

Page 48: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Kétágú szelekció - if..else48

if (feltétel)

utasítás1;

else

utasítás2;

if (feltétel) {

utasítás;

...

}utasítás2; }

else {

utasítás;

...

}

Page 49: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Többágú szelekció - else if és switch49

if (feltétel1)

utasítás1;

else if (feltétel2)

utasítás2;

switch (kifejezés) {

case érték1:

utasítások;

break;

case érték2:utasítás2;

...

else

utasításN;

case érték2:

utasítások;

break;

...

default:

utasítások;

}

Page 50: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Többágú szelekció - else if és switch50

Page 51: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Iterációk – for51

for (inicializálás; feltétel; léptetés) {

utasítás1;

utasítás2;

...

utasításN;

}

Page 52: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Iterációk – for

� Parancsori paraméterek kiíratása:

Page 53: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Iterációk – while, do while53

while (feltétel) {

utasítás1;

utasítás2;

...

do {

utasítás1;

utasítás2;

... ...

utasításN;

}

...

utasításN;

} while (feltétel);

Page 54: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Iterációk – while, do while - Példa54

Page 55: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Kiugrás ciklusból

� Break: az aktuális utasításblokkból (pl. ciklusból) való azonnali kiugrást eredményezi

� Continue: hatására a vezérlés az utasításblokk (ciklus) végére kerül(ciklus) végére kerül

� Példa:

Page 56: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Metódusok

� Eljárás:

� Utasítások egyszerű végrehajtása

� Visszatérítési típusa: void (semleges)

� Függvény:� Függvény:

� Van visszatérítési értéke

� Eljárásként is hívható

� Statikus metódusból kizárólag az osztály statikus elemeire hivatkozhatunk

Page 57: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Metódusok

� Szintaxis:

<módosítók>]<visszatérési típus><metódus neve>

([<formális paraméterlista>])[<throws ...>]

{

<metódusblokk><metódusblokk>

}

� Megjegyzések:� Javában csak érték szerinti paraméterátadás van, azaz a

paraméter helyén szereplő értékről másolat készül. A metódus ezt a másolatot látja, használja

� Fordítási hiba, ha függvényben van return nélküli ág; lokális változó nincs inicializálva

Page 58: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Metódusok - Példa

Page 59: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Metódusok - Példa

Page 60: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Metódusok - Példa

Page 61: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java osztályok rendszerezése61

� Java API: kb. 2000 osztály

� A java.lang csomag legfontosabb osztályai:

Page 62: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Az Object osztály62

� Minden osztály közös őse

� Bármely osztályból létrehozott példány “az egy” objektum

� A Java minden objektumára jellemző metódusokat � A Java minden objektumára jellemző metódusokat tartalmaz. Például:

� boolean equals(Object obj)

� String toString()

� Class getClass()

Page 63: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Primitív típus vs. Referencia63

� Primitív:

� 8 primitív típus: boolean, char, byte, short, int, long, float, double

� A változó azonosítójával közvetlenül hivatkozunk a változó memóriahelyére

� A deklaráló utasítás végrehajtása: memória foglalás

� A programozó nem definiálhat primitív típust

Page 64: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Primitív típus példa64

� Közvetlen (direkt) címzés:

Page 65: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Referencia típus65

� Objektumra mutat

� A változó azonosítójával az objektum

memóriahelyére közvetve hivatkozunk egy

referencián (hivatkozáson) keresztül

� A hivatkozás rejtve marad (automatikus indirekció)

� NULL referencia: nem mutat semmire, nem hivatkozik

objektumra

Page 66: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Referencia típus példa66

Ember ember = new Ember("Erika",1953);

ember objektum címe

Page 67: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektum létrehozása67

� Létrehozás a new operátorral:

new <OsztályAzonosító>(<aktuális

paraméterlista>)

� PéldányosításPéldányosítás

� Memóriafoglalás

� Konstruktorhívás: beállítja az objektum kezdeti állapotát

� adatok

� kapcsolatok

� Visszaadja az új objektum referenciáját

Page 68: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektum deklarálása68

� Deklarálás:

<OsztályAzonosító> objektum;

� Az objektum egy referencia típusú változó

� Memóriafoglalás: csak a referencia részére� Memóriafoglalás: csak a referencia részére

� Az objektum létrehozása a programozó feladata

<OsztályAzonosító> objektum;

objektum=new <OsztályAzonosító>(<aktuálisparaméterlista>);

<OsztályAzonosító> objektum =

new <OsztályAzonosító>(<aktuális paraméterlista>);

Page 69: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektum értékadás69

Page 70: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektumok egyenlőségvizsgálata70

� Objektumok állapotát nem lehet a (==, !=)

operátorokkal összehasonlítani (referencia hasonlíás)

� Objektumok egyenlőségét az equals metódussal szokás

megállapítanimegállapítani

� Példa:

� Kimenet:

Page 71: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektumok egyenlőségvizsgálata71

� Objektumok állapotát nem lehet a (==, !=)

operátorokkal összehasonlítani

� Objektumok egyenlőségét az equals metódussal szokás

megállapítanimegállapítani

� Példa:

� Kimenet:

Page 72: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektum élete, automatikus szemétgyűjtés

72

� Automatikus szemétgyűjtés (garbage collection):

� A rendszer bizonyos időnként automatikusan felszabadítja a hibatkozás nélküli objektumok memóriahelyét

� Példa:

ember1 = new String("Gábor");

ember1 = new String("Anikó");

Page 73: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

A String osztály73

� Szöveg tárolására szolgál

� Értéke egész élete során állandó marad

� Unikód karakterek sorozata, a karakterek sorszámozottak (0 a legelső sorszám)sorszámozottak (0 a legelső sorszám)

� Létrehozás:String szoveg=new String(”Kész!");

String szoveg=”Kész!";

� Konstruktorok:

� String()

� String(value: String), String(buffer: StringBuffer)

Page 74: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

A String osztály74

� Hossz, index� length(): int

� charAt(index: int): char

� Manipulált karakterláncok� toLowerCase(): String

� toUpperCase(): String

� trim(): String

� replace(oldChar: char, newChar: char): String

� substring(beginIndex: int, endIndex: int): String

� Konkatenálás� concat(str: String): String

Page 75: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

A StringBuffer osztály75

� Manipulálható szöveg

� Konstruktorok� StringBuffer()

� StringBuffer(length: int)

� StringBuffer(str: String)

� Kapacitás, hossz, index� capacity(): int

� length(): int

� ensureCapacity(minimumCapacity: int)

� setLength(newLength: int)

� charAt(index: int): char

Page 76: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

A StringBuffer osztály - Példa76

Page 77: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektum átadása paraméterként77

� Az aktuális paraméter értékadás szerint kompatibilis kell legyen a formális paraméterrel

� Nem az objektum másolódik át, hanem csak a referenciareferencia

� Az átmásolt referenciával éppúgy meg tudjuk változtatni az objektumot

Page 78: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Objektum átadása paraméterként78

Page 79: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Primitív típusok csomagolása79

� Célok:� Primitív típusú változók objektumként kezelése

� Primitív típusokkal kapcsolatos információk lekérdezése

� Minden primitív típushoz tartozik egy csomagoló � Minden primitív típushoz tartozik egy csomagoló osztály (wrapper class): Character, Boolean, Byte, Short, Integer, Long, Float, Double.

� A csomagoló osztályok példányai változtathatatlanok

� Konstruktorok:<Type> (<type> value)

Például:Character cObj = new Character('A');

Page 80: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Primitív típusok csomagolása80

� Konstruktorok:<Type> (String s)

Például:Boolean bObj = new Boolean("True");

� Példánymetódusok:� Példánymetódusok:� String toString()

Például:Double dObj = new Double(6099.8);String s = dObj.toString(); //s=="6099.8”

� <type> <type>Value()

Például:Integer iObj = new Integer(30);int i = iObj.intValue(); // i==30double d = iObj.doubleValue(); // d==30.0

Page 81: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Primitív típusok csomagolása81

� Numerikus csomagoló osztályok� static final <type> MIN_VALUE =

<a típusnak megfelelı érték>;

� static final <type> MAX_VALUE =

<a típusnak megfelelı érték>;<a típusnak megfelelı érték>;

Például:System.out.println(Byte.MIN_VALUE);

� static <type> parse<Type>(String s)

Például:int i = Integer.parseInt("50"); // i==50

Page 82: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java csomagok82

� Az osztályok, interfészek csoportosítását a Java nyelvi szinten támogatja, a csomag (package)

segítségével

� A csomagok hierarchikus rendszert alkotnak� A csomagok hierarchikus rendszert alkotnak

� A csomagnevekben az egyes szinteket pont választja el.� Példa: java.io, java.math, stb.

� A hierarchiaszintek száma tetszőleges lehet

Page 83: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Java csomagok83

� A Java megengedi, hogy két külön csomagban legyen két azonos nevű osztály

� minősített nevek (qualified name): az azonos nevű osztályok megkülönböztetésére szolgálnakosztályok megkülönböztetésére szolgálnak

� A minősített nevek az osztályt tartalmazó csomag teljes nevéből, és az osztály egyszerű nevéből állnak

Page 84: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Csomagok deklarációja84

� Egy osztályt a package kulcsszó segítségével helyezhetünk el egy csomagban

� Egy forráskódban csak egy package deklaráció lehet, a forráskód legelejénlehet, a forráskód legelején

� Ha nincs package deklaráció, az adott osztály, vagy interfész a névtelen csomagba kerül

� Példa:

� A definiált osztály minősített neve csomag.A lesz

Page 85: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Csomagok leképzése fájlrendszerre85

� A fordítási egységek fájlok .java kiterjesztéssel

� A csomag, alcsomag nevek könyvtárak, alkönyvtárak

� Példa:package cs1.cs2.cs3;package cs1.cs2.cs3;

� Mindig a package root alól adjuk ki a fordításhoz/futtatáshoz szükséges parancsokat

� Példa:� Fordítás

� Futtatás

Page 86: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Osztályok elérése86

� Egy osztályra a definíciójával megegyező csomagban az egyszerű nevével hivatkozhatunk

� Példa:

Page 87: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Osztályok elérése87

� Egy osztályra a definíciójától eltérő csomagban többféleképpen hivatkozhatunk:

� Minősített nevek használata (kényelmetlen)

Page 88: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Osztályok elérése88

� Import deklarációk� import csomag.osztalynev;

� import csomag.*; (minden publikus osztályt importálunk)

� Az import java.lang.*; minden fordítási egységben � Az import java.lang.*; minden fordítási egységben automatikusan megtörténik

Page 89: JAVA PROGRAMOZÁS - emte.siculorum.ropallaszlo/java/eloadas/1.Eloadas.pdf · JAVA PROGRAMOZÁS 1.EL ŐAD ÁS Dr. PálLászló, SapientiaEMTE, Csíkszereda 2014-2015 Java bevezetés,

Könyvészet89

� Angster Erzsébet, Objektumorientált tervezés és programozás. Java I-II. (Bazele programării orientate pe obiecte), Ed. 4 Kör Bt., Budapesta, 2002.

� Kathy Sierra, Bert Bates: Agyhullám: Java, Kiskapú, 2011.2011.