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



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

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

Objektumorientált programozás C# nyelven

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

3. Gyakorlat Ismerkedés a Java nyelvvel

Objektumorientált programozás C# nyelven

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


Magas szintű programozási nyelvek 2 Előadás jegyzet

Java programozási nyelv

C# gyorstalpaló. Készítette: Major Péter

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

Programozás II gyakorlat. 4. Öröklődés

Java programozási nyelv 7. rész Java osztálykönyvtár 1.

libgdx alapok, első alkalmazás

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

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?

Programozási nyelv Java

Programozási nyelvek Java

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

Származtatási mechanizmus a C++ nyelvben

A Jáva programozási nyelv rejtelmei

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

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

1.1 Szakdolgozat témája A Program célja A használt technológiák ismertetése A program megtervezése...

JAVA SE/ME tanfolyam tematika

Programozás I. Első ZH segédlet

Java osztálykönyvtár és használata

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Programozás C++ -ban 2007/4

C# osztályok. Krizsán Zoltán

PHP5 Új generáció (2. rész)

Előzmények

Objektum Orientált Szoftverfejlesztés (jegyzet)


VBA. Visual Basic for Applications

Java programozási nyelv 5. rész Osztályok III.

Szoftvertechnológia alapjai Java előadások

4. Öröklődés. Programozás II

A SZOFTVERTECHNOLÓGIA ALAPJAI

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

Adatszerkezetek és algoritmusok

Programozás II. labor

Programozási technológia I.

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

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

Webszolgáltatások kommunikációs overhead-jének becslése

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

117. AA Megoldó Alfréd AA 117.

15. Programok fordítása és végrehajtása

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

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

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

A Java nyelv. Java programozás alapjai. Hello world futtatása. Java adattípusok. Egyszerű adattípusok.

Programozási nyelvek Java

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

Java II. I A Java programozási nyelv alapelemei

A meteorológia az időjárás tudománya

Programozás 3. Dr. Iványi Péter

RIA Rich Internet Application

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

C#, OOP. Osztályok tervezése C#-ban

Borkereskedő. Dokumentáció a Programozási módszertan elmélete című tárgy beadandó programjához. Magyar Attila mattila@inf.elte.hu

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

A Java programozási nyelv

Java programozási nyelv 8. rész Grafikus felhasználói felület

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

A hierarchikus adatbázis struktúra jellemzői

Modellalkotás UML-ben

Szervlet-JSP együttműködés

XML technikák II Kovács, László

II. év. Adatbázisok és számítógépek programozása

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

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

Osztály és objektum fogalma

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Információs Technológia

Adatbázisok* tulajdonságai

XML sémanyelvek Jeszenszky, Péter

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

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

Programozás 5. Dr. Iványi Péter

Osztályok. 4. gyakorlat

Java III. I I. Osztálydefiníció (Bevezetés)

Objektum orientált alapelvek

Java III. I I. Osztálydefiníció (Bevezetés)

Java programozási nyelv

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

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

A Java és a C++ összehasonlítása

Fizika InfoRmatika Kémia Alapok. Az Erdélyi Magyar Műszaki Tudományos Társaság kiadványa. Megjelenik kéthavonta (tanévenként 6 szám)

Objektumorientált programozás C# nyelven

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

Matematikai alapok. Dr. Iványi Péter

Átírás:

Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl - A Java szabványos osztálygyűjteménye jre\lib\rt.jar CSOMAG CSOMAGOK RT.JAR CSOMAGOK RT.JAR Az rt.jar kicsomagolva (esetleg át kell nevezni rt.zip-re) Az rt.jar\java könyvtár tartalma 1

CSOMAGOK RT.JAR CSOMAGOK A csomagok egymásba ágyazhatóak. Tetszőleges mélységű csomagstruktúra kialakítható. Egy szintre akárhány osztály/interfész kerülhet. Lehet olyan csomag, amelyben nincsenek osztályok/interfészek pl.: java csomag A csomagolás logikai szinten történik A java.lang és a java.math könyvtár CSOMAGOK - KÖNYVTÁRSTRUKTÚRA Csomagok: logikai szerkezet Könyvtárak: fizikai szerkezet Csomagnév = könyvtárnév!! 2

CSOMAGOK - NEVEK CSOMAGOK - NEVEK Ugyanaz vonatkozik rájuk, mint a könyvtárnevekre, vagyis: Egy csomagon belül nem lehet azonos nevű csomag és osztály. Az osztályra teljes útvonallal hivatkozunk minősített név pl.: java.lang.math Vigyázat!!! nincsenek relatív minősített nevek pl.: lang.math nem elegendő De itt sem kell mindig a teljes útvonallal hivatkozni. Csomagok deklarációja: A fordítási egység elején a package kulcsszóval jelöljük, hogy melyik csomagba tartozik: package csomag; public class A { } Egy fordítási egységben csak egy package deklaráció lehet. A csomagot teljes elérési útvonallal írjuk. CSOMAGOK - OSZTÁLYHIVATKOZÁSOK CSOMAGOK - IMPORT Definícióval megegyező csomagban egyszerű névvel hivatkozunk. Definíciótól eltérő csomagban minősített nevekkel (teljes útvonal) vagy: egyenkénti import deklaráció vagy: tömbösített (igény szerinti) import deklaráció vagy: automatikus import deklaráció egyetlen ilyen csomag van, a java.lang csomag. Egyenkénti import: minden osztályt egyenként importálunk pl.: import [csomag1.[csomag2] ].Osztály; Igény szerinti import: import [csomag1.[csomag2] ].*; a * (joker) karakterrel az összes osztályt importáljuk ugyanúgy használható, mint könyvtár/fájl struktúrák esetén! 3

CSOMAGOK - LÁTHATÓSÁG + public tetszőleges csomagból látható nincs módosító (package private) csak a saját csomagja láthatja az osztályt - private csak a deklaráló osztály érheti el # protected saját csomagból bárki és az utódok érhetik el Csomag UML jelölése: téglalap kis füllel A Mikulas.java állomány A Husvet.java állomány A Karacsony.java állomány 4

Az Indit.java állomány Eredmény: CSOMAGOK PÉLDA: A JAVA.LANG CSOMAG Olyan alapvető típusokat tartalmaz, amelyekre szükség van egy program futtatásához. Az Object osztály minden osztály közös őse. A JAVA.LANG CSOMAG NÉHÁNY OSZTÁLY A JAVA.LANG CSOMAG NÉHÁNY OSZTÁLY Csomagoló osztályok (wrapper classes): Boolean, Character, Byte, Short, Integer, Long, Float, Double. Ezek a megfelelő primitív típusokat (boolean, char, int, float, stb.) foglalják osztályokba, és evvel lehetővé teszik, hogy a primitív értékeket objektumként kezeljük. (Például a konvertáláshoz a megfelelő osztály megfelelő metódusa szükséges.) A numerikus osztályok közös absztrakt őse: a Number. (Az absztrakt osztály csak örökítési célokat szolgál, belőle nem lehet példányt létrehozni.) Math osztály: matematikai konstansokat és függvényeket definiál. (Pl. abs, cos, sin, exp, stb. részleteket ld. a help-ben.) Ez egy final osztály emiatt nem örökíthető, és nincs publikus konstruktora (kizárólag statikus deklarációkat tartalmaz), ezért nem példányosítható. Használata pl.: double x = Math.PI; double y = Math.sin(x); double z = Math.random(); // az x sinusát adja vissza // 0 x < 1 véletlen szám 5

A JAVA.LANG CSOMAG NÉHÁNY OSZTÁLY NÉHÁNY OSZTÁLY KITÉRŐ System osztály: a rendszer működésével kapcsolatos alapvető metódusokat és objektumokat tartalmazza. Ez sem örökíthető és nem is példányosítható. Ebben vannak pl. az in és out objektumok a kiíratáshoz, beolvasáshoz, vagy itt van pl. a rendszer azonnali leállását eredményező exit() metódus, stb. Format osztály: Formázási céllal íródott absztrakt osztály. String, StringBuffer osztályok: szövegek tárolására, manipulálására alkalmas osztályok. A String típusú objektum állapota nem változtatható, a StringBuffer típusú objektumok állapota változtatható. NÉHÁNY OSZTÁLY KITÉRŐ Formázásra egy lehetséges (de nem kizárólagos) példa: A kész Java programot át kell adni a felhasználónak. Kényelmes megoldás: a futtatáshoz szükséges fájlokat összecsomagoljuk, és egyetlen állományként adjuk át a megrendelőnek. JAR (Java ARchive) állományok szabványos ZIP formátumú tömörített állományok (zip helyett jar kiterjesztéssel). 6

Egy Java alkalmazás (applet) csak akkor fut, ha az illető gépen telepítve van a JRE. Elvileg lehet exe állományt készíteni, de a kész Java programot.jar fájlként szokás átadni a felhasználónak: JAR (Java ARchive) állományok (szabványos ZIP formátumú tömörített állományok) A JAR formátum előnyei: Biztonságos: Ellátható digitális aláírással. Egyszerű letölthetőség. Tömörítés: Hatékony tárolás, különböző metainformációkkal. stb Egy JAR állomány tartalmazhat: bájtkódokat (class állományokat) amelyek osztályokat, interfészeket tartalmaznak könyvtárakat (amelyek fizikailag valósítják meg a csomagok hierarchiáját) erőforrásokat (képeket, dokumentumokat, hangokat, stb.) Bizonyos JAR állományok futtathatók, mások nem. A futtatható JAR állományoknak kell, hogy legyen egy belépési pontja, vagyis egy statikus main metódust tartalmazó főosztálya, amelyről a JAR aláírás-állománya (manifest file) ad információt. JAR készítése: a/ A JDK jar.exe programja segítségével: Készítés parancs módban: kell egy manifest nevű állomány, amely megmondja, hogy mit lehet kezdeni a jar tartalmával. Ennek minimális tartalma: JAR készítése: b/ A Netbeans automatikusan elkészíti Clean + Build után a project dist mappája: Main-Class: SajátMainOsztályNeve Ezek után kiadható a következő parancs: jar cvfm SajátProgi.jar manifest SajátProgiKönyvtára vagy: jar cvfm SajátProgi.jar manifest SajátFájl1 SajátFájl2 Megjegyzés: Konzolos program.jar állománya parancsmódból futtatható. ( java -jar fajnev.jar ) 7