Java tutorial. Java Technologia Standard Edition. Lerajzolva: A kodolas utan... Fordıtas (tőbb fajl) Fordıta s

Hasonló dokumentumok
Java tutorial. Csomagok. A program tagolasa. Alrendszerek kialakıtasa. Csomag. Alrendszerek kialakıtasa

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

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

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

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

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

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Szoftvertechnológia alapjai Java előadások

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

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 I. A Java programozási nyelv

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. Bevezetés, alapok Elek Tibor

és az instanceof operátor

Segédanyag: Java alkalmazások gyakorlat

Java felhasználói felület

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

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

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

Programozási nyelv Java

Java és web programozás

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

Javadoc. Dokumentációs megjegyzés (2) Dokumentációs megjegyzés (1) Dokumentációs megjegyzés felépítése

Osztályok. 4. gyakorlat

Programozási nyelvek Java

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

Java I. A Java programozási nyelv

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?

OOP: Java 4.Gy: Java osztályok

Java programozási nyelv

Javac és Eclipse útmutató

Programozási nyelvek Java

Mobil Informatikai Rendszerek

Java és web programozás

Segédanyag: Java alkalmazások gyakorlat

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

Java és web programozás

Programozás I. Első ZH segédlet

Programozási nyelvek Java

BME MOGI Gépészeti informatika 8.

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

Programozási technológia

Java és web programozás

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

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Automatizált Java Build. ApacheAnt használatával

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

Objektumorientált programozás C# nyelven

Programozási nyelvek Java

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Java IX. telkezelés a Java-ban

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

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

Java IX. telkezelés a Java-ban

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Java gyakorlat feladatai e s megolda sai ( )

Programozási nyelvek Java

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

Objektumorientált programozás C# nyelven

Java és web programozás

Java és web programozás

Az állományok kezelésére használt fontosabb parancsok

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Programozási technológia I.

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Web-technológia PHP-vel

Java Programozás 11. Ea: MVC modell

OOP: Java 1.Gy: Java alapok

Java programozási nyelv 4. rész Osztályok II.

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Mesterséges Intelligencia II. kötelező feladat (3. forduló) - Ajánló rendszer 2.

libgdx alapok, első alkalmazás

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

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).

Szoftvertechnolo gia gyakorlat

2017/01/27 08:59 1/6 Gettext Rendszer

Kalapácsvetés 2016 szöveges

C++ programozási nyelv

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

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

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

Sikeres végrehajtás(pass): ez azt jelenti, hogy a teszt rendben lefutott, és az ellenőrzési feltételek mind teljesültek.

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

Stateless Session Bean

JNDI - alapok. Java Naming and Directory Interface

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Programozási nyelvek Java

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

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

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

OOP #14 (referencia-elv)

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

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Programozási nyelvek II.: JAVA

Programozási nyelvek Java

Átírás:

Java Technologia Standard Edition A kodolas utan... Forra sfa jlok.java é Fe lig-meddigí lefordıtjuk pl. javac Ba jtkod.class Interpretaljuk pl. java Forras Fordıto Lerajzolva: Osztaly betőlt Bajtkod ellen rz Platformfu ggetlense g, biztonsa g class fajl Interpreter JIT kodgenerator Platform Fordıta s Ha abban a kőnyvtarban vagyunk, ahol a fa jl: javac Hello.java Ha eggyel lejjebb, pl. cd.. utan javac udv/hello.java Ha tőbb fajlt is le akarunk fordıtani javac udv/*.java Fordıtas (tőbb fajl) Irjuk őssze a lefordıtando forrasfajlok nevet egy fajlba, pl. a forrasok fajlba. $ cat forrasok Hello.java Szia.java Salut.java $ javac @forrasok 1

A fordıtasi egysegek tőbb tıpusdefinıciot is tartalmazhatnak Mindegyikhez keletkezik egy.class fajl Csavar.java package raktar.adatok; public class Csavar extends Anyag {... class CsavarMenet {... A lefordıtott fajlok elhelyezese Kővetni kell a csomag-hierarchiat ú ku lőnben a virtualis gep (java) tana cstalan lesz Alkőnyvta rak le trehozasa Pe lda ul a raktar.adatok.csavar osztaly.class fa jlja t a raktar/adatok alkőnyvtarba kell tenni A fordıtas soran ket fajl keletkezik: Csavar.class CsavarMenet.class raktar/adatok/csavar.class A -d kapcsolo Nem kell kezzel masolgatni: bızzuk ra a javac fordıtora Megmondjuk, mi legyen a celkőnyvtar Azon belu l felepıti a szu kseges kőnyvta rstruktűra t javac -d. Csavar.java javac -d../classes Csavar.java A forrasok elhelyezese Javaslat: ugyanolyan struktűraban, mint a.class fajloknal, azaz kővetve a csomaghierarchiat. Pl.: src raktar adatok gui web classes raktar adatok gui web Forra sfa jlok elhelyeze se (2) Lehetnek egy kőnyvtarszerkezetben a.class fa jlokkal Lehetnek ket ku lőnbőz, de azonos szerkezetú kőnyvtarstruktűraban a forras es a.class fajlok Lehetnek egesz mashogy is, pl. sok kőnyvta rban sze tszorva 2

A -sourcepath kapcsolo Ha sok kőnyvtarba vannak szetszorva a forrasfajlok, akkor hasznalhatjuk a -sourcepath kapcsolot Megadhato, hogy mely kőnyvtarakban kell keresni forrasfajlok utan javac -sourcepath ~/src/java:~/projects/raktar DB.java Hivatkozasok a fordıtasi egyse gen kıvu lre Ha egy fordıtasi egyseg hivatkozik egy masik fordıtasi egysegben lev tıpusra, akkor a javac fordıto: ú megprobalja megtalalni a hozza tartozo.class fajlt - ha egyaltalan le van mar az a tıpus fordıtva ú ha nincs lefordıtva, akkor megkeresi a megfelel.java fajlt, es rekurzıvan azt is lefordıtja Rekurzıv fordıtas A neve alapjan keresi meg a hivatkozott tıpust tartalmazo forrasfajlt a javac ú A fajlnevnek meg kell egyeznie a tıpusnevvel ú A -sourcepath kapcsolo szerepe... Hol keresse a.class fajlokat? Alape rtelmeze sben ú a szabvanyos kőnyvtarakban es ú az aktualis munkakőnyvtarban A -classpath kapcsolo segıtsegevel mas is megadhato javac -classpath ~/classes:. DB.java A szabvanyos kőnyvtarakban, a ~/classes kőnyvtarban es az aktualis munkakőnyvtarban. A -classpath kapcsolo Megadhato tőbb kőnyvtarnev, amelyekben a.class fajlokat keresheti a fordıto ú a ko nyvtarnevek elvalasztasahoz UNIX alatt a : Windows alatt a ; hasznaland Nem csak kőnyvtarnevek, hanem.zip es.jar fajlok is megadhatok, azokban is keres A kapcsolo rővidebb alakja: -cp 3

Hogyan tőrtenik a kereses? javac -classpath ~/classes:. DB.java ú Tegyu k fel, hogy hivatkozas tőrtenik a raktar.adatok.csavar osztalyra. ú A szabvanyos kőnyvtarakban nem talalja. Ott java. es javax. kezdetú tıpusok vannak... ú Keresi a ~/classes/raktar/adatok/csavar.class fa jlt ú Ha az sincs, keresi a raktar/adatok/csavar.class fajlt ú Ha az sincs, keresi a forrasat, a raktar/adatok/csavar.java fajlt, hogy lefordıtsa a -sourcepath kapcsolo alapjan ha nincs megadva, akkor az aktualis kőnyvtarban Oszta lykerese si űtvonal hagyoma nyos megada sa A CLASSPATH kőrnyezeti valtozo Manapsag nem illend hasznalni ú kőnnyen ősszekavarodnak a dolgok, ha tőbb projekten is dolgozunk Helyette a -classpath kapcsolo A javac fordıto egyeb kapcsoloi Szabvanyos kapcsolok, pl. -g nyomkővetesi infok -O optimaliza las -target kod verzioszam (1.1, 1.2, ) -nowarn ne legyenek figyelmeztetesek -deprecation err l meg lesz szo Nem szabvanyos kapcsolok ú Kes bbi/korabbi fordıtok nem biztos, hogy ismerik ú Pl. heap meretenek beallıtasa A virtualis gep indıtasa A java parancsnak is adhatunk kapcsolokat A -classpath ugyanűgy, mint fordıtaskor ú az ott megadott helyeken keresi az osztalyokat az osztalybetőlt Mas szabvanyos kapcsolok, pl. -version Ha a f program nem nevtelen csomagban van: teljes osztalynevet kell megadni Feladat Nezzu k meg, milyen opcioi vannak a fordıtonak es a virtualis gepnek! java -classpath ~/classes:. raktar.indit Mit is jelent a java Hello.class parancs? 4

Deprecation Az API nehany eleme elavulhat az űjabb es űjabb verziok kihozatalakor ú osztalyok, interfeszek, metodusok A deprecated szoval jelőlik meg a dokumenta cioban Nem illeszkedik az aktualis Java szemlelethez ú pl. internacionalizacio U jabb API verziok nem biztos, hogy tamogatni fogja k Haszna latuk keru lend Deprecated feloldasa A fordıto figyelmeztetest ku ld, ha deprecated elemet haszna lunk Fordıtsuk űjra a -deprecation kapcsoloval Hibalistat kapunk azokrol az elemekr l, amelyek deprecated a llapotűak A dokumentacio megadja, mi kell helyette E rdemes a javıtast elvegezni, hogy a programunk hosszabb eletú legyen... Feladat Hozzunk letre egy java.util.date objektumot a szu letesi id nkkel, es ırassuk ki. Tu ntessu k el a programunkbol az elavult elemeket! A -D kapcsolo A virtualis gepnek parameterek adhatok at System properties - rendszerjellemz k A programbol lekerdezhet ek Vannak automatikusan beallıtottak, es mi is letrehozhatunk űjabbakat a -D kapcsoloval Pelda import java.util.*; public class Jellemzok { public static void main(string[] args) { Properties p = System.getProperties(); Enumeration nevek = p.propertynames(); while ( nevek.hasmoreelements() ) { String nev = (String) nevek.nextelement(); String ertek = p.getproperty(nev); System.out.println(nev + " = " + ertek); java -Dezaneve=valami Jellemzok 5

Szemelvenyek az eredmenyb l (1) Szemelvenyek az eredmenyb l (2) java -Dezaneve=valami Jellemzok java -Dezaneve=valami Jellemzok java.version = 1.3 user.timezone = Europe/Paris java.specification.version = 1.2 java.vm.vendor = Sun Microsystems Inc. user.home = /h/teacher/kto java.vm.specification.version = 1.0 os.arch = sparc...... user.language = en user.name = kto path.separator = : file.separator = / user.dir = /h/mnt/pandora/userlv/home/teacher/kto ezaneve = valami... javac java javadoc jar... Sege dprogramok fordıto virtualis gep dokumenta cio genera la sa Java ARchieve keszıtese javadoc: HTML dokumentacio javadoc tag-ek A programszővegb l a specifikaciok kigyújtese (csomagnevek, osztalynevek, adattagok, metodusok, kivetelek...) Dokumenta cios megjegyze sek beilleszte se /** */ Specialis adatok a dokumentacios megjegyzeseken belu l (űn. tag-ek) @author @version @param @return @throws @see @deprecated szerz neve - email cıme verzioszam parame ter dokumenta la sa visszate resi e rte k dokum. kivaltott kivetelek dokum. hivatkozas, link elavultsag jelzese 6

/** Hagyomanyos verem adattıpus. @author Kozsik Tamas @version 1.0 */ public class Verem { /** A verem tartalma. */ java.util.vector adatok = new java.util.vector(); /** Betesz egy elemet a verembe. @see #pop @param adat Amit betesz. */ public void push(object adat){... /** Kivesz egy elemet a verembol. @result Object A verem tetejen levo elem. @throws UresException Ha ures a verem. */ public Object pop() throws UresException {... javadoc meghıvasa A ku lőnfe le hozza fere si kategoria k (public, protected, package, private) szerint lehet ku lőnbőz reszletessegú dokumentaciot ke szıteni Lehet sajat formatumot definialni (doclet) E s van egy csomo kapcsolo (-classpath, -sourcepath, -d, stb.) jar - Java ARchieve Lenyegeben zip formatum, kis extrakkal A jar program hasznalata hasonlıt a tar parancsra Archıvum keszıtese: jar cvf classes.jar Foo.class Bar.class Mas fejleszt eszkőzők Sok ceg csinalt mar Java fordıtot es virtualis gepet Peldaul a bőngesz programokban is sajat szokott lenni ú Helyette hasznalhatunk plug-in virtualis gepet Fejleszt eszkőzőkben is szokott sajat lenni Vannak hatekonyabbak is, mint a Sun cuccok 7