Eclipse és Java teljesen kezdőknek Segédanyag

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Eclipse és Java teljesen kezdőknek Segédanyag"

Átírás

1 Eclipse és Java teljesen kezdőknek Írta: Mark Dexter Fordította: Csapó Krisztina Tartalomjegyzék Bevezetés...2 A tanfolyam célközönsége...2 A tanfolyam célja...2 Miért jó az Eclipse környezettel tanulni a Java nyelvet?...3 Tárgyalt témakörök...3 A tanfolyam által használt megközelítés...3 A tananyag elsajátításának legjobb módja...4 Minta Java alkalmazás Személyes könyvtár...4 Az Eclipse letöltése és telepítése...4 A leckék lejátszása...5 A video átméretezése...5 Feliratok és a lecke tartalomjegyzéke...6 A leckék vázlatai lecke Az első Java osztály létrehozása lecke Metódusok hozzáadása az osztályhoz lecke Az Eclipse vázlatkönyv (Scrapbook) használata lecke - JUnit tesztelés az Eclipse környezetben, 1. rész lecke - JUnit tesztelés folytatása lecke Először tesztelés fejlesztési módszer használata az Eclipse környezetben lecke A Book osztály létrehozása lecke A Person osztály hozzáadása a Book osztályhoz lecke A MyLibrary osztály és az ArrayList létrehozása lecke A MyLibrary osztály létrehozása lecke A MyLibrary osztály első metódusainak létrehozása lecke A checkout, és checkin metódusok létrehozása lecke A checkout metódus folytatása lecke A checkout metódus befejezése lecke A MyLibrary osztály metódusainak befejezése lecke A main metódus és a JAR fájl létrehozása...9 Alfabetikus index leckék szerint...9 Szószedet...12 További információforrások...15 Eclipse webhelyek...15 Java webhelyek...15 Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

2 Java könyvek...15 Kódrészletek lecke Person osztály (mezők és konstruktor) lecke Person osztály (get és set metódusokkal) lecke (scrapbook pillanatképek) lecke PersonTest osztály lecke A Person osztályhoz hozzáadott tostring() metódus lecke A TestBook és Book osztályok lecke A Person hozzáadása a Book osztályhoz lecke A MyLibrary osztály és az ArrayList lecke A MyLibrary osztály létrehozása lecke A MyLibrary osztály első metódusainak létrehozása lecke A checkout és checkin metódusok létrehozása lecke A checkout Method folytatása lecke A checkout metódus befejezése lecke A MyLibrary osztály metódusainak befejezése lecke A main metódus és a JAR fájl létrehozása...41 Bevezetés Ez a segédanyag az Eclipse és Java teljesen kezdőknek video tanfolyam útmutatója, amely a eclipsetutorial.sourceforge.net/ címen érhető el. A tanfolyam célközönsége A tananyag azok számára készült, akik még nem ismerik az Eclipse környezetet és a Java nyelvet. Egyformán hasznos lehet a programozási tapasztalattal még egyáltalán nem rendelkezőknek, és azoknak, akik programoztak már más nyelven. A tanfolyam célja A tanfolyam céljai a következők: Az Eclipse használatának bemutatása Java programok írásához (alapok) Az Eclipse használatának bemutatása az agile software development Meglévő Java oktatási információforrások (ismertetők, példák, könyvek) használatának bemutatása az Eclipse környezeten belül Alapok biztosítása a Java és az Eclipse tanulásának folytatásához Vedd figyelembe, hogy mind a Java, mind pedig az Eclipse elég nagy területek, amelyeket nem lehet egyik napról a másikra tökéletesen elsajátítani. Ez a tanfolyam segít a kezdeti lépésekben, és ad néhány olyan készséget, amelyek az önálló tanuláshoz szükségesek. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

3 Miért jó az Eclipse környezettel tanulni a Java nyelvet? A Java programozás tanulásának több módja is van. Az oktatóanyag készítője úgy gondolja, hogy vannak előnyei annak, ha a Java nyelvet az Eclipse integrált fejlesztői környezet (IDE) használatával tanulja valaki. Ezek közül néhány: Az Eclipse számos segédeszközt biztosít, amelyek sokkal gyorsabbá és könnyebbé teszik a Java kód írását, mint a szövegszerkesztő használata. Ez azt jelenti, hogy több időt fordíthatsz a Java tanulására, és kevesebbet kell eltölteni a gépeléssel és a keresgéléssel a dokumentációban. Az Eclipse hibakereső (debugger) és a vázlatkönyv (scrapbook) betekintést ad a Java kód végrehajtásába. Ez lehetővé teszi, hogy lásd az objektumokat és megértsd, hogyan működik a Java a színfalak mögött Az Eclipse teljes támogatást nyújt az agilis szoftverfejlesztési technikákhoz, mint például a teszt-vezérelt fejlesztés és átdolgozás (refactoring). Ez lehetővé teszi a bevált módszerek elsajátítását a Java nyelv tanulása közben. Ha valaki azt tervezi, hogy Java nyelven fejleszt majd programokat, akkor meg kell majd tanulnia az Eclipse vagy egy másik IDE kezelését. Így az Eclipse használata a kezdetektől időt és energiát takarít meg. A legfontosabb szempont azonban az, hogy az IDE tanulása önmagában is nehéz, és elvonhat a Java tanulásától. Ez a tanfolyam reményeim szerint viszonylag fájdalommentessé teszi az Eclipse alapjainak elsajátítását, így könnyebb a Java tanulására koncentrálni. Tárgyalt témakörök Ez a tananyag a következő témaköröket tárgyalja: Az Eclipse alapjai Java fejlesztéshez A Java nyelv és az Objektumorientált programozás (OOP) alapjai Teszt-vezérelt fejlesztés (TDD) és egységtesztelés Eclipse környezetben A tanfolyam által használt megközelítés A tanfolyam során a következőkre lesz lehetőség: Egyszerű minta Java alkalmazás írása a személyes könyvtár figyeléséhez Az először tesztelés megközelítés használata a legtöbb metódus fejlesztésekor Egy teszt-vezérelt program írása és egy végrehajtható JAR fájl létrehozása, valamint a JAR fájl futtatása a rendszerkonzolról. Az elméleti tudnivalók a minta alkalmazások fejlesztése során szükség szerint bővülnek. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

4 A tananyag elsajátításának legjobb módja A tananyag bemutatja a Java fejlesztést Eclipse környezetben. Ha viszont valóban szeretnél megtanulni Java alkalmazásokat írni Eclipse környezetben, akkor a következő megközelítést javaslom: Legyen a gépeden egy használatra kész Eclipse. Dolgozz a leckék mentén, állítsd le, tekerd vissza, ha szükséges. Használd igény szerint ezt a kézikönyvet. Szükség esetén nézz utána más forrásokban is az itt tárgyalt témaköröknek, hogy alaposabban megismerd azokat. Pozitívan állj hozzá a tanuláshoz! Minta Java alkalmazás Személyes könyvtár A leckék során egy kis minta alkalmazást fogunk fejleszteni, amely nyilvántartja a személyes könyvtárunkat. Ez tartalmazza azoknak a személyeknek a listáját is, akiknek könyveket adunk kölcsön. Az alkalmazásban három Java osztály lesz: 1. A Person (Személy), amelyben a személy nevét és az általa egyszerre kölcsönözhető könyvek számát tároló mezők szerepelnek. 2. A Book (Könyv), amelyben a cím, a szerző és a könyvet jelenleg kölcsönző személy tárolására szolgáló mezők szerepelnek. 3. A MyLibrary (Saját könyvtár), amely az összes könyv listáját és az összes olyan személy listáját fogja tartalmazni, akik kölcsönözhetik a könyveket. Az Eclipse letöltése és telepítése Az Eclipse telepítése előtt a számítógépen szükség lesz egy telepített Java fejlesztői eszközkészletre (Java Development Kit, JDK), vagy Java futási környezetre (Java Runtime Environment, JRE). Ezek a webcímről tölthetők el. A JDK vagy a JRE telepítése elég egyszerű. Szükség esetén részletes, lépésről lépésre leírt útmutatások a webhelyen található PDF Eclipse Tutorial című anyagban érhetők el (angol nyelven), a Beginning Eclipse hivatkozásra kattintva. A Java fejlesztéshez a JDK ajánlott, mert ez lehetővé teszi a szabványos Java osztályok dokumentációjának és forráskódjának megtekintését is. Ehhez a tanfolyamhoz azonban a JRE és a JDK egyformán megfelelő. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

5 Ez a tanfolyam az Eclipse 3.3 változaton alapul, bár használható a 3.2 és valószínűleg a későbbi változatokkal is. Az Eclipse 3.3 telepítéséhez szükséges lépések: Az Eclipse webhelyen menj a letöltések oldalára: Válaszd az Eclipse IDE for Java Developers lehetőséget. Ha Linux vagy MacOSX operációs rendszer fut a számítógépeden, akkor a jobboldali oszlopban található hivatkozást válaszd. Használhatod az Eclipse IDE for Java EE Developers, Eclipse for RCP/Plug-in Developers, vagy az Eclipse Classic változatot is. Ezek mind tartalmazzák az Eclipse Java fejlesztéshez szükséges részeit, amelyekre a tananyag elvégzéséhez szükség lesz. A oldalon kattints a Find out more hivatkozásra. Görgess lefelé a böngészőben, amíg meg nem jelenik a képernyő jobb oldalán a Tutorials and Help (Ismertetők és súgó) keret. Az első ismertető egy Screencam video ismertető, ami végigvezet az Eclipse letöltési és telepítési folyamatán, Windows operációs rendszer esetén. Az Eclipse telepítése igen egyszerű. Nincs telepítőprogramja. Ehelyett létrehozol egy felső szintű mappát, majd kitömöríted a zip fájlt ebbe a mappába. Például Windows XP használata esetén másold a zip fájlt a gyökérkönyvtárba (pl. C:\ ), majd tömörítsd ki. Az Eclipse programok több almappát tartalmaznak (configuration, features, plugins, readme). Az eljárás Linux rendszeren is nagyon hasonló, kivéve, hogy itt a tar.gz fájlt kell kitömöríteni. A leckék lejátszása A leckék lejátszásához tedd a következőket. 1. Töltsd le a 16 lecke zip fájljait (totalbeginnerlessonxx.zip). 2. Tömörítsd ki az egyes leckék zip fájljait a rendszer egyik könyvtárába. 3. Keresd meg a lessonxx.html fájlt, ahol xx a lecke száma között. 4. Nyisd meg ezt a fájlt a böngésződdel (például Internet Explorer vagy Firefox), majd kattints a video képen a nagy lejátszás gombra. A lecke lejátszása a böngészőn belül történik. Megjegyzés: az Adobe Flash player alkalmazásnak telepítve kell lennie a rendszeren. A programot az Adobe webhelyről töltheted le: 5. A video vezérlői a video alatt vannak. A Pause/Play (Szünet/Lejátszá) gomb a bal alsó sarokban található. Egy diavezérlő lehetővé teszi, hogy bármikor előre vagy visszatekerd a videot. A jobb alsó sarokban találhatók a Volume (hangerő), Table of Contents (tartalomjegyzék) és a Closed Captions (feliratozás) vezérlői. A video átméretezése Másik lehetőségként megnyitható a lessonxx.swf fájlt is a böngészővel. Windows rendszeren Internet Explorer használata esetén biztonsági figyelmeztetést kaphatsz, és rákattintva az Allow blocked content (Blokkolt tartalom engedélyezése) lehetőséget kell választani. Ha közvetlenül nyitod meg a lessonxx.swf fájlt (vagyis nem a lessonxx.html fájlon keresztül), akkor átméretezheted a videót bármilyen kívánt méretre (nagyíthatod vagy kicsinyítheted). Megjegyzés: a videó lejátszása a lessonxx.html fájlon keresztül a legtisztább megjelenítést biztosítja, de nem teszi lehetővé az átméretezést. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

6 Feliratok és a lecke tartalomjegyzéke Az egyes leckék hangfelvételét feliratok kísérhetik, amelyek a videó alsó részében jelennek meg. Kattints a jobb alsó sarokban található CC gombra a be- vagy kikapcsolásukhoz. Az egyes leckékhez tartoznak tartalomjegyzékek is, amelyek lehetővé teszik, hogy a videón belül egy megadott pontra ugorj. A tartalomjegyzék eléréséhez kattints videó jobb alsó sarkában található Tartalomjegyzék (Table of Contents) ikonra. A Tartalomjegyzék vezérlő mellett található a Hangerő szabályozó (Volume Control). A vezérlőket a fenti ábra mutatja. A leckék vázlatai 1. lecke Az első Java osztály létrehozása Java projekt létrehozása az Eclipse környezetben Java csomag létrehozása A Könyvtár alkalmazás ismertetése Osztályok és objektumok, elnevezési megállapodások Egy egyszerű Java osztály írása (Person) 2. lecke Metódusok hozzáadása az osztályhoz Eclipse nézetek és perspektívák Az Eclipse felhasználói felület fogd és vidd, előugró menük, súgó get (lekérdező) és set (beállító) metódusok hozzáadása a Person osztályhoz 3. lecke Az Eclipse vázlatkönyv (Scrapbook) használata Az Eclipse vázlatkönyv Java kifejezések és utasítások Java csomagok ismertetése Person objektum létrehozása a vázlatkönyvben Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

7 4. lecke - JUnit tesztelés az Eclipse környezetben, 1. rész Tesztelési forrásmappa (test) létrehozása A PersonTest osztály létrehozása Az első JUnit teszt futtatása 5. lecke - JUnit tesztelés folytatása A Person osztály tesztelése 2. rész Tesztmetódusok létrehozása a konstruktorhoz, valamint a getname és a getmaximumbooks metódusokhoz Statikus metódusok 6. lecke Először tesztelés fejlesztési módszer használata az Eclipse környezetben Az először tesztelés megközelítés használata a Person tostring() metódus használatával Metódusok újradefiniálása Mezők elrejtése 7. lecke A Book osztály létrehozása A BookTest létrehozása a Book osztály előtt A Book osztály konstruktorának tesztelése A get és set metódusok létrehozása 8. lecke A Person osztály hozzáadása a Book osztályhoz Kapcsolat létrehozása a Book és a Person osztályok között A getperson metódus tesztelése JUnit tesztkészlet létrehozása 9. lecke A MyLibrary osztály és az ArrayList létrehozása Hogyan tároljuk a könyveket (vagy hasonlókat) egy gyűjteményben? A MyLibrary objektum a Person és Entry objektumok tárolásához Az ArrayList létrehozása a vázlatkönyvben A Java Generics bemutatása Metódusláncok Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

8 10. lecke A MyLibrary osztály létrehozása MyLibraryTest JUnit teszt létrehozása A testmylibrary létrehozása a MyLibrary konstruktor teszteléséhez A MyLibrary konstruktor létrehozása Az instanceof operátor Az asserttrue metódus 11. lecke A MyLibrary osztály első metódusainak létrehozása Tesztelő metódus létrehozása az addbook és removebook metódusokhoz Az addbook és removebook metódusok létrehozása és tesztelése Az addperson és removeperson metódusok létrehozása Eclipse átdolgozás (refactoring) lokális változó áthelyezése mezőbe 12. lecke A checkout, és checkin metódusok létrehozása Teszt létrehozása a checkout és checkin metódusokhoz A checkout metódus megírása Az if / then / else szintaxis Logikai (boolean) metódusok A checkin metódus megírása 13. lecke A checkout metódus folytatása A checkout és checkin metódusok tesztelése Fordítóhiba javítása rossz helyen lévő { Teszt hozzáadása a maximumbooks mezőhöz A getbooksforperson() methódus tesztelése Átdolgozás metódusok kinyerése 14. lecke A checkout metódus befejezése A getbooksforperson metódus megírása A for each ciklus A && logikai AND (és) operátor NullPointerException hibák A checkout metódus befejezése Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

9 15. lecke A MyLibrary osztály metódusainak befejezése Teszt létrehozása a getavailablebooks metódushoz A getavailablebooks metódus létrehozása A getunavailablebooks metódus létrehozása 16. lecke A main metódus és a JAR fájl létrehozása A main metódus A main metódus megírása A MyLibrary futtatása Java alkalmazásként Exportálás JAR fájlba és futtatás a Windows rendszerből Alfabetikus index leckék szerint Témakör Lecke addbook() metódus...11 addperson() metódus...11 agile szoftverfejlesztés...4 alosztály...4 ArrayList<> osztály...9 assertequals() metódus...5 asserttrue() metódus...10 beállító (set) metódusok...2 Book osztály...7 boolean típus...10 checkout() metódus...12 Convert local variable to field, Eclipse varázsló...11 CTRL+/, belső megjegyzések átkapcsolása...8 CTRL+Shift+P kapcsos zárójel párjának keresése...13 CTRL+Space kódsegéd...2 csomag, létrehozása...1 csomagok, Java...3 Eclipse böngésző osztály nézet...2 Eclipse felhasználói felület...2 Eclipse kódsegéd (CTRL+Space)...2 Eclipse vázlatkönyv (scrapbook)...3 egységteszt...4 először-tesztelés fejlesztés...6 equals metódus karaktersorozatokhoz (vs. == operátor)...14 Export to (JAR) file, Eclipse varázsló...16 extends kulcsszó...4 extrém programozás...4 Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

10 Feladat (Task) nézet, TODO megjegyzések...7 for each ciklus...14 Forrás mappa, új létrehozása...4 Generate Getters and Setters varázsló...2 Generics, Java...9, 10 get() metódus, ArrayList...9 getavailablebooks() metódus...15 getbooksforperson() metódus...14 getunavailablebooks() metódus...15 Gyorsjavítás (Quick fix, CTRL+1), először tesztelés fejlesztésben...7 Gyorsjavítás (Quick fix, CTRL+1)...4 if then utasítás...12 indexof() metódus, ArrayList...9 instanceof operátor...10 JAR archívum fájl...16 java -jar parancs...16 JUnit nézet...5 JUnit teszt függvénytár...4 JUnit Test osztály, új létrehozása...4 JUnit teszt, futtatás...5 JUnit, aktuális összehasonlítása az elvárttal...5 kapcsos zárójel, kiemelés az Eclipse környezetben...13 kifejezések...3 kis- és nagybetűk a Java nyelvben...1 kódsegéd (code assist, CTRL+Space)...2 kódsegéd sablon...2 konstruktor (Java)...1 Könyvtár alkalmazás...1 lekérdező (get) metódusok...2 main() metódus...16 megjegyzések: belső (//)...1 metódusok (osztály)...2 mezők (osztály)...1 munkaasztal (workbench), Eclipse...2 munkaasztal területek...2 munkaterület (Eclipse)...1 MyLibrary osztály...10 mylibrary.jar fájl...16 new kulcsszó...3 nézet (Eclipse)...2 NullPointerException...14 Object osztály, Java...3 objektumfüggőség...8 objektumok egyenlősége, Java...8 osztály (Java)...1 összeépítési útvonal...4 Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

11 Person osztály...1 perspektíva (Eclipse)...2 printstatus() metódus...16 private hozzáférési módosító...8 projekt, létrehozása...1 protected hozzáférési módosító...10 public hozzáférési módosító...8 Refactor menü, Eclipse...11 removebook() metódus...11 removeperson() metódus...11 scrapbook, Eclipse...3 setup() metódus, JUnit teszt osztály...11 statikus metódusok...5 System.out.println() parancs...3 szülőosztály...4 testbook() metódus...7 testcheckout() metódus...12 testgetavailablebooks() metódus...15 testgetbooksforperson() metódus...13 testgetunavailablebooks() metódus...15 tesztmetódus, létrehozás...5 tesztmetódus, meghatározás...6 tesztkészlet, JUnit...8 teszt-vezérelt fejlesztés (TDD)...6 this kulcsszó...2, 6 TODO megjegyzés, feladatlista...7 tostring() metódus...6 újradefiniálás, metódus...6 utasítások...2 üdvözlő képernyő (Eclipse)...1 vázlatkönyv, Eclipse...3 vázlatkönyv, importálások beállítása gomb...3 végrehajtás gomb, Eclipse vázlatkönyv...3 végrehajtható JAR fájl...16 vizsgálat gomb, Eclipse vázlatkönyv...3!= operátor (nem egyenlő)...12 && operátor (AND operátor)...14 ( ) zárójel, Java...2 /* */ megjegyzések...2 ; pontosvessző, Java...2 { kapcsos zárójel, Java...2 == operátor (egyenlő)...12 Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

12 Szószedet Kifejezés Agilis (vagy Extrém) fejlesztés API (Alkalmazásprogramozási felület) Átdolgozás (refactor) Csomag Érték típusú változó Hozzáférési módosító IDE (Integrált fejlesztői környezet) JUnit Test Rövid meghatározás Szoftverfejlesztési módszertan, amely nagy hangsúlyt fektet többek között az egységtesztelésre, mint a fejlesztési folyamat részére. Annak módja, hogy egy program egy másik programot használ. A Java nyelvben az API egy osztály vagy csomag publikus metódusainak gyűjteményét jelenti. Egy program javítása a működésének (például az API-jainak) megváltoztatása nélkül. Például mezők vagy változók átnevezése, a kód karcsúsítása, stb. Az agilis fejlesztésben igen fontos az öndokumentáló kód miatt. A csomagokat azért importáljuk egy forrásfájlba, hogy ne kelljen beírni az osztály teljes nevét (például elég annyi, hogy Person az org.eclipsetraining.librarytutorial.person helyett), valamint hogy elkerüljük a két azonos nevű osztály létezését. A Javában azok a változók, amelyek egy Java primitív (int, char, stb.) értékét tartalmazzák. A memóriaveremben vannak tárolva. Ellentéte a referencia típusú változó. A public, private, protected fenntartott szavak a Java nyelvben. Azt vezérlik, hogy az osztályok és tagok bármely osztályból, csak az adott osztályból, vagy az utód osztályokból legyenek elérhetők. Alapértelmezés: a csomag bármely osztályából. Egy program, mint például az Eclipse, amely különféle eszközöket biztosít szoftvercsomagok fejlesztéséhez. Egy osztály egyes metódusainak teszteléséhez használt Java osztály. Tesztesetek felépítésére szolgál, például az agilis fejlesztési módszertan használata esetén. JVM (Java virtuális gép), más néven Java futási környezet (JRE) Az a program, amely a Java programokat futtatja egy adott platformon. A Java forráskódot.class fájlokra fordítja le. Ezek a JVM által használt utasításokat tartalmazzák, amely ténylegesen futtatja a programokat egy Windows, Linux vagy Mac számítógépen. A JVM a Java által támogatott minden platformra meg van írva. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

13 Kifejezés Konstruktor Metódus Rövid meghatározás Egy speciális kódblokk, amely egy osztály egy példányának létrehozására szolgál (másképpen egy olyan objektum létrehozására, amelynek a típusa az osztály). A new kulcsszóval alkalmazható (például a Person p = new Person() utasítás meghívja a Person() konstruktort). Az osztályban egy feldolgozást végző tag (mint például egy alrutin vagy egy függvény más nyelvekben). Metódus argumentumok, A metódus deklarációjában szereplő változók listáját nevezzük metódus paraméterek paramétereknek. Az argumentumok a metódus meghívásakor átadott aktuális értékek. Egy metódus meghívásakor a használt argumentumoknak meg kell felelniük a deklaráció paramétereinek típus és sorrend szerint. Például a public setname(string name) { metódusban a name a metódus paramétere. Ha ezt a metódust a következőképpen használjuk: myobject.setname( Fred ); akkor a Fred karaktersorozat a metódus argumentuma, amelynek meg kell felelnie a metódus paraméter típusának. Metódus szignatúra Mező Munkaterület A metódus neve és paraméterlistája. Például ha egy metódus setname (String name) formában van meghatározva, akkor a metódus szignatúrája setname(string) lesz. A metódus szignatúrák azért fontosak, mert ez teszi lehetővé a metódusok túlterhelését (vagyis azt, hogy azonos nevű metódusok különböző szignatúrákkal rendelkezzenek). Például a setname(string firstname, String lastname) metódus a setname(string name) metódus túlterhelésével jön létre, mivel annak szignatúrája más ( setname(string, String) ). Egy osztály azon tagja, amely adatokat tartalmaz (például név, kor, stb.) Általában a private módosítóval rendelkezik, hogy más programok ne érhessék el közvetlenül. Felső szintű konténer az Eclipse környezetben végzett munkához. Egyetlen Eclipse munkamenetben csak egy munkaterület lehet aktív. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

14 Kifejezés Objektum Osztály Projekt Referencia típusú változó Statikus metódus Swing SWT (Standard Widget Toolkit) Típus Túlterhelés (metódus) Rövid meghatározás Egy osztály egy példánya. Például, a Torta lehet az osztály, és egy torta (például ezatorta) lehet az osztály használatával létrehozott objektum. Más szavakkal, az ezatorta egy Torta típusú objektum, vagy pedig a Torta egy példánya. A Java nyelv fő építőeleme. Tagokat tartalmaz, beleértve a mezőket és metódusokat. Az osztályok az objektumok létrehozásához használt tervrajzok. Az Eclipse környezetben a munka szervezésének egyik módja. Egy Eclipse munkaterület több projektet is tartalmazhat. Minden projektben több csomag lehet. Minden csomag több osztályt tartalmazhat. A Javában egy olyan változó, amely egy objektum referenciáját tartalmazza (például: p = new Person();). A kupac (heap) azon területére mutat, ahol az objektum található. Ellentéte az érték típusú változó. Egy olyan metódus, amely egy teljes osztályhoz tartozik, és nem csak az osztály egy példányához. Meghívása: <Osztály>.<Metódus> (például Person.getTotalCount()). Olyan metódusok esetén használandó, amelyek nem az osztály egy példányára támaszkodnak. Szabványos Java csomagok készlete, amely natív kód használata nélkül valósít meg egy grafikus felhasználói felületet. Java osztályok és natív programok készlete, amelyet az Eclipse fejlesztett ki, hogy lehetővé tegye a Java programok megjelenítését az egyes platformokon a natív programok stílusával. Az Eclipse IDE létrehozásához is ezt használták. A Javában egy változó egyik attribútuma, amely vagy egy primitív típust (int, boolean, stb), vagy az osztálytagságot jelöli. Objektumok esetében a típus az az osztály, amelyhez az objektum tartozik. A típusok közé tartoznak az interfészek és felsorolások (enumeration) is. Több metódus meghatározása azonos névvel, de különböző paraméterekkel (vagyis azonos névvel, de különböző szignatúrákkal). Újradefiniálás (metódus) Amikor egy utód osztály megvalósít egy szülőosztályból örökölt metódust, akkor ez a metódus újra lesz definiálva. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

15 Kifejezés Rövid meghatározás Vázlatkönyv (Scrapbook) Egy terület az Eclipse környezetben, ahol Java kódrészleteket lehet oldal végrehajtani, hogy lássuk, hogyan működnek. Kiváló lehetőség a kísérletezésre a Java utasításokkal. További információforrások Ha többet szeretnél megtudni a Java nyelvről és az Eclipse környezetről, számos információforrás áll rendelkezésre. Néhány ezek közül, amelyeket én hasznosnak találtam. Eclipse webhelyek Itt számos cikk, könyv, bemutató és egyéb forrás található az Eclipse környezettel kapcsolatos változatos témákról. eclipse.newcomer hírcsoport. Ez egy barátságos, aktív hírcsoport, ahol az Eclipse környezettel most ismerkedők tehetnek fel kérdéseket. A hírcsoport keresési szolgáltatása különösen értékes, mivel a előfordulhat, hogy a kérdést már feltették és megválaszolták. Beginning Eclipse Tutorial (Kezdő Eclipse ismertető) az ArcTech Software LLC webhelyen. Írásos ismertető az Eclipse és a Java kezdeti lépéseihez. A letöltéshez bejelentkezés szükséges. Van egy nagyon jó rész a Java fejlesztői készlet (JDK) letöltéséről és telepítéséről. Az ismertető webcíme: A weboldal címe: Java webhelyek A Sun Java ismertetői ( A Java tanulás arany szabványa, és ingyenes. JavaRanch Big Moose Saloon weboldala ( Számos fórumot tartalmaz, többek között Java általában (kezdő), Java általában (középhaladó), és számos más Java témakör. Rendkívül aktív és barátságos hely, nagytudású moderátorokkal. Java Developers Almanac 1.4 ( Számos témakörben tartalmaz Java kódmintákat. Java könyvek Head First Java (szerzők: Kathy Sierra és Bert Bates). Kiváló, humoros, kreatív könyv Java és OOP kezdőknek. Thinking In Java (szerző: Bruce Eckel). Kiváló, átfogó referencia a Javához. Programozóknak minden tudásszinten. Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

16 Effective Java (szerző: Joshua Bloch). A Java követendő eljárásait összefoglaló tömör könyv. Középhaladó és haladó programozóknak. Kódrészletek A következő kódrészletek az egyes leckék végére elért kód állapotát tükrözik. Felhasználhatók összehasonlításra a saját kóddal, vagy segítenek javítani az esetleg felmerülő problémákat. Szükség esetén bemásolhatók az Eclipse Java forrásfájlokba. Ha a tanfolyamba a közepén kapcsolódnál be, akkor ezek segítségével felveheted a fonalat a megfelelő ponton. 1. lecke Person osztály (mezők és konstruktor) package org.totalbeginner.tutorial; public class Person { // mezők private String name; // a személy neve private int maximumbooks; // a személy által maximálisan kölcsönözhető könyvek száma // konstruktor public Person() { name = "unknown name"; maximumbooks = 3; 2. lecke Person osztály (get és set metódusokkal) Megjegyzés: a kiemelt sorok ebben a leckében kerültek a kódba. package org.totalbeginner.tutorial; public class Person { // mezők private String name; // a személy neve private int maximumbooks; // a személy által maximláisan kölcsönözhető könyvek száma // konstruktor public Person() { name = "unknown name"; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

17 maximumbooks = 3; //metódusok public String getname() { return name; public void setname(string anyname) { name = anyname; public int getmaximumbooks() { return maximumbooks; public void setmaximumbooks(int maximumbooks) { this.maximumbooks = maximumbooks; 3. lecke (scrapbook pillanatképek) Expressions: int a = 5; a = a * 10; a (after import of org.totalbeginner.tutorial.*) Person p = new Person(); p.setname( Fred ); P Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

18 5. lecke PersonTest osztály package org.totalbeginner.tutorial; import junit.framework.testcase; public class PersonTest extends TestCase { public void testperson() { Person p1 = new Person(); assertequals("unknown name", p1.getname()); assertequals(3, p1.getmaximumbooks()); public void testsetname() { Person p2 = new Person(); p2.setname("fred"); assertequals("fred", p2.getname()); public void testsetmaximumbooks() { Person p3 = new Person(); p3.setmaximumbooks(10); assertequals(10, p3.getmaximumbooks()); 6. lecke A Person osztályhoz hozzáadott tostring() metódus Megjegyzés: ezen a ponton a Person és PersonTest osztályok készen vannak. package org.totalbeginner.tutorial; public class Person { // mezők private String name; // a személy neve private int maximumbooks; // a személy által maximlisan kölcsönözhető könyvek száma // konsrtuktor public Person() { name = "unknown name"; maximumbooks = 3; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

19 //metódusok public String getname() { return name; public void setname(string anyname) { name = anyname; public int getmaximumbooks() { return maximumbooks; public void setmaximumbooks(int maximumbooks) { this.maximumbooks = maximumbooks; public String tostring() { return this.getname() + " (" + this.getmaximumbooks() + " books)"; package org.totalbeginner.tutorial; import junit.framework.testcase; public class PersonTest extends TestCase { public void testperson() { Person p1 = new Person(); assertequals("unknown name", p1.getname()); assertequals(3, p1.getmaximumbooks()); public void testsetname() { Person p2 = new Person(); p2.setname("fred"); assertequals("fred", p2.getname()); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

20 public void testsetmaximumbooks() { Person p3 = new Person(); p3.setmaximumbooks(10); assertequals(10, p3.getmaximumbooks()); public void testtostring() { Person p4 = new Person(); p4.setname("fred Flintstone"); p4.setmaximumbooks(7); String teststring = "Fred Flintstone (7 books)"; assertequals(teststring, p4.tostring()); 7. lecke A TestBook és Book osztályok package org.totalbeginner.tutorial; import junit.framework.testcase; public class BookTest extends TestCase { public void testbook() { Book b1 = new Book("Great Expectations"); assertequals("great Expectations", b1.title); assertequals("unknown author", b1.author); package org.totalbeginner.tutorial; public class Book { String title; String author; public Book(String string) { this.title = string; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

21 this.author = "unknown author"; public String getauthor() { return author; public void setauthor(string author) { this.author = author; public String gettitle() { return title; package org.totalbeginner.tutorial; import junit.framework.test; import junit.framework.testsuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test for org.totalbeginner.tutorial"); //$JUnit-BEGIN$ suite.addtestsuite(booktest.class); suite.addtestsuite(persontest.class); //$JUnit-END$ return suite; 8. lecke A Person hozzáadása a Book osztályhoz Megjegyzés: A BookTest és Book osztályok ezen a ponton kész vannak. package org.totalbeginner.tutorial; public class Book { Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

22 String title; String author; Person person; public Book(String string) { this.title = string; this.author = "unknown author"; public String getauthor() { return author; public void setauthor(string author) { this.author = author; public String gettitle() { return title; public void setperson(person p2) { this.person = p2; public Person getperson() { return this.person; package org.totalbeginner.tutorial; import junit.framework.testcase; public class BookTest extends TestCase { public void testbook() { Book b1 = new Book("Great Expectations"); assertequals("great Expectations", b1.title); assertequals("unknown author", b1.author); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

23 public void testgetperson() { Book b2 = new Book("War And Peace"); Person p2 = new Person(); p2.setname("elvis"); // metódus, amely megmondja, hogy a könyv ki lett kölcsönözve ennek a személynek b2.setperson(p2); // a könyvet kölcsönző személy nevének lekérdezézése // Person testperson = b2.getperson(); // String testname = testperson.getname(); String testname = b2.getperson().getname(); assertequals("elvis", testname); 9. lecke A MyLibrary osztály és az ArrayList Vázlatkönyv példa ArrayList<Book> list = new ArrayList<Book>(); Book b1 = new Book("Great Expectations"); Book b2 = new Book("War and Peace"); list.add(b1); list.add(b2); Person p1 = new Person(); p1.setname("fred"); b1.setperson(p1); list.remove(b1); list 10. lecke A MyLibrary osztály létrehozása Megjegyzés: Innentől kezdve szükség esetén használhatók a 6. leckében szereplő Person és Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

24 PersonTest osztályok, valamint a 8. leckében szereplő Book és BookTest osztályok. package org.totalbeginner.tutorial; import java.util.arraylist; import junit.framework.testcase; public class MyLibraryTest extends TestCase { // test constructor public void testmylibrary() { MyLibrary ml = new MyLibrary("Test"); assertequals("test", ml.name); asserttrue(ml.books instanceof ArrayList); asserttrue(ml.people instanceof ArrayList); package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

25 11. lecke A MyLibrary osztály első metódusainak létrehozása package org.totalbeginner.tutorial; import java.util.arraylist; import junit.framework.testcase; public class MyLibraryTest extends TestCase { private Book b1; private Book b2; private Person p1; private Person p2; private MyLibrary ml; // test constructor public void testmylibrary() { MyLibrary ml = new MyLibrary("Test"); assertequals("test", ml.name); asserttrue(ml.books instanceof ArrayList); asserttrue(ml.people instanceof ArrayList); public void setup() { b1 = new Book("Book1"); b2 = new Book("Book2"); p1 = new Person(); p2 = new Person(); p1.setname("fred"); p2.setname("sue"); ml = new MyLibrary("Test"); public void testaddbook() { //create test objects setup(); //test initial size is 0 assertequals(0, ml.getbooks().size()); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

26 ml.addbook(b1); ml.addbook(b2); assertequals(2, ml.getbooks().size()); assertequals(0, ml.getbooks().indexof(b1)); assertequals(1, ml.getbooks().indexof(b2)); ml.removebook(b1); assertequals(1, ml.getbooks().size()); assertequals(0, ml.getbooks().indexof(b2)); ml.removebook(b2); assertequals(0, ml.getbooks().size()); package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); public String getname() { return name; public ArrayList<Book> getbooks() { return books; public ArrayList<Person> getpeople() { return people; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

27 public void addbook(book b1) { this.books.add(b1); public void removebook(book b1) { this.books.remove(b1); public void addperson(person p1) { this.people.add(p1); public void removeperson(person p1) { this.people.remove(p1); 12. lecke A checkout és checkin metódusok létrehozása package org.totalbeginner.tutorial; import java.util.arraylist; import junit.framework.testcase; public class MyLibraryTest extends TestCase { private Book b1; private Book b2; private Person p1; private Person p2; private MyLibrary ml; // test constructor public void testmylibrary() { MyLibrary ml = new MyLibrary("Test"); assertequals("test", ml.name); asserttrue(ml.books instanceof ArrayList); asserttrue(ml.people instanceof ArrayList); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

28 public void setup() { b1 = new Book("Book1"); b2 = new Book("Book2"); p1 = new Person(); p2 = new Person(); p1.setname("fred"); p2.setname("sue"); ml = new MyLibrary("Test"); public void testaddbook() { //teszt objektumok létrehozása setup(); //a teszt kezdeti mérete 0 assertequals(0, ml.getbooks().size()); ml.addbook(b1); ml.addbook(b2); assertequals(2, ml.getbooks().size()); assertequals(0, ml.getbooks().indexof(b1)); assertequals(1, ml.getbooks().indexof(b2)); ml.removebook(b1); assertequals(1, ml.getbooks().size()); assertequals(0, ml.getbooks().indexof(b2)); ml.removebook(b2); assertequals(0, ml.getbooks().size()); private void additems() { ml.addbook(b1); ml.addbook(b2); ml.addperson(p1); ml.addperson(p2); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

29 public void testcheckout() { // objektumok beállítása setup(); additems(); asserttrue("book did not check out correctly", ml.checkout(b1,p1)); assertequals("fred", b1.getperson().getname()); assertfalse("book was already checked out", ml.checkout(b1,p2)); asserttrue("book check in failed", ml.checkin(b1)); assertfalse("book was already checked in", ml.checkin(b1)); assertfalse("book was never checked out", ml.checkin(b2)); package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); public String getname() { return name; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

30 public ArrayList<Book> getbooks() { return books; public ArrayList<Person> getpeople() { return people; public void addbook(book b1) { this.books.add(b1); public void removebook(book b1) { this.books.remove(b1); public void addperson(person p1) { this.people.add(p1); public void removeperson(person p1) { this.people.remove(p1); public boolean checkout(book b1, Person p1) { if ((b1.getperson() == null) ){ b1.setperson(p1); return true; else { return false; public boolean checkin(book b1) { if (b1.getperson()!= null) { b1.setperson(null); return true; else { return false; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

31 13. lecke A checkout Method folytatása package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); public String getname() { return name; public ArrayList<Book> getbooks() { return books; public ArrayList<Person> getpeople() { return people; public void addbook(book b1) { this.books.add(b1); public void removebook(book b1) { this.books.remove(b1); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

32 public void addperson(person p1) { this.people.add(p1); public void removeperson(person p1) { this.people.remove(p1); public boolean checkout(book b1, Person p1) { if ((b1.getperson() == null) ){ b1.setperson(p1); return true; else { return false; public boolean checkin(book b1) { // TODO Auto-generated method stub return false; public ArrayList<Book> getbooksforperson(person p1) { // TODO Auto-generated method stub return null; 14. lecke A checkout metódus befejezése package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

33 ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); public String getname() { return name; public ArrayList<Book> getbooks() { return books; public ArrayList<Person> getpeople() { return people; public void addbook(book b1) { this.books.add(b1); public void removebook(book b1) { this.books.remove(b1); public void addperson(person p1) { this.people.add(p1); public void removeperson(person p1) { this.people.remove(p1); public boolean checkout(book b1, Person p1) { int booksout = this.getbooksforperson(p1).size(); if ((b1.getperson() == null) && booksout < p1.getmaximumbooks()){ b1.setperson(p1); return true; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

34 else { return false; public boolean checkin(book b1) { if (b1.getperson()!= null) { b1.setperson(null); return true; else { return false; public ArrayList<Book> getbooksforperson(person p1) { ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if ((abook.getperson()!= null) && (abook.getperson().getname().equals(p1.getname()))) { result.add(abook); return result; 15. lecke A MyLibrary osztály metódusainak befejezése package org.totalbeginner.tutorial; import java.util.arraylist; import junit.framework.testcase; public class MyLibraryTest extends TestCase { private Book b1; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

35 private Book b2; private Person p1; private Person p2; private MyLibrary ml; // konstruktor tesztelése public void testmylibrary() { MyLibrary ml = new MyLibrary("Test"); assertequals("test", ml.name); asserttrue(ml.books instanceof ArrayList); asserttrue(ml.people instanceof ArrayList); public void setup() { b1 = new Book("Book1"); b2 = new Book("Book2"); p1 = new Person(); p2 = new Person(); p1.setname("fred"); p2.setname("sue"); ml = new MyLibrary("Test"); public void testaddbook() { //tesztobjektumok létrehozása setup(); //teszt kezdeti mérete 0 assertequals(0, ml.getbooks().size()); ml.addbook(b1); ml.addbook(b2); assertequals(2, ml.getbooks().size()); assertequals(0, ml.getbooks().indexof(b1)); assertequals(1, ml.getbooks().indexof(b2)); ml.removebook(b1); assertequals(1, ml.getbooks().size()); assertequals(0, ml.getbooks().indexof(b2)); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

36 ml.removebook(b2); assertequals(0, ml.getbooks().size()); public void testcheckout() { // objektumok beállítása setup(); additems(); asserttrue("book did not check out correctly", ml.checkout(b1,p1)); assertequals("fred", b1.getperson().getname()); assertfalse("book was already checked out", ml.checkout(b1,p2)); asserttrue("book check in failed", ml.checkin(b1)); assertfalse("book was already checked in", ml.checkin(b1)); assertfalse("book was never checked out", ml.checkin(b2)); // további teszt a maximumbooks mezőhöz setup(); p1.setmaximumbooks(1); additems(); asserttrue("first book did not check out", ml.checkout(b2, p1)); assertfalse("second book should not have checked out", ml.checkout(b1, p1)); private void additems() { ml.addbook(b1); ml.addbook(b2); ml.addperson(p1); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

37 ml.addperson(p2); public void testgetbooksforperson() { setup(); additems(); assertequals(0, ml.getbooksforperson(p1).size()); ml.checkout(b1, p1); ArrayList<Book> testbooks = ml.getbooksforperson(p1); assertequals(1, testbooks.size()); assertequals(0, testbooks.indexof(b1)); ml.checkout(b2, p1); testbooks = ml.getbooksforperson(p1); assertequals(2, testbooks.size()); assertequals(1, testbooks.indexof(b2)); public void testgetavailablebooks() { setup(); additems(); ArrayList<Book> testbooks = ml.getavailablebooks(); assertequals(2, testbooks.size()); assertequals(1, testbooks.indexof(b2)); ml.checkout(b1, p1); testbooks = ml.getavailablebooks(); assertequals(1, testbooks.size()); assertequals(0, testbooks.indexof(b2)); ml.checkout(b2, p1); testbooks = ml.getavailablebooks(); assertequals(0, testbooks.size()); public void testgetunavailablebooks() { setup(); additems(); assertequals(0, ml.getunavailablebooks().size()); ml.checkout(b1, p1); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

38 ArrayList<Book> testbooks = ml.getunavailablebooks(); assertequals(1, testbooks.size()); assertequals(0, testbooks.indexof(b1)); ml.checkout(b2, p2); testbooks = ml.getunavailablebooks(); assertequals(2, testbooks.size()); assertequals(1, testbooks.indexof(b2)); public void testtostring() { setup(); additems(); assertequals("test: 2 books; 2 people.", ml.tostring()); package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); public String getname() { return name; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

39 public ArrayList<Book> getbooks() { return books; public ArrayList<Person> getpeople() { return people; public void addbook(book b1) { this.books.add(b1); public void removebook(book b1) { this.books.remove(b1); public void addperson(person p1) { this.people.add(p1); public void removeperson(person p1) { this.people.remove(p1); public boolean checkout(book b1, Person p1) { int booksout = this.getbooksforperson(p1).size(); if ((b1.getperson() == null) && booksout < p1.getmaximumbooks()){ b1.setperson(p1); return true; else { return false; public boolean checkin(book b1) { if (b1.getperson()!= null) { b1.setperson(null); return true; else { return false; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

40 public ArrayList<Book> getbooksforperson(person p1) { ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if ((abook.getperson()!= null) && (abook.getperson().getname().equals(p1.getname()))) { result.add(abook); return result; public ArrayList<Book> getavailablebooks() { ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if (abook.getperson() == null) { result.add(abook); return result; public ArrayList<Book> getunavailablebooks() { ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if (abook.getperson()!= null) { result.add(abook); return result; public String tostring() { return this.getname() + ": " + this.getbooks().size() + " books; " + this.getpeople().size() + " people."; Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

41 16. lecke A main metódus és a JAR fájl létrehozása package org.totalbeginner.tutorial; import java.util.arraylist; public class MyLibrary { String name; ArrayList<Book> books; ArrayList<Person> people; public MyLibrary(String name) { this.name = name; books = new ArrayList<Book>(); people = new ArrayList<Person>(); public String getname() { return name; public ArrayList<Book> getbooks() { return books; public ArrayList<Person> getpeople() { return people; public void addbook(book b1) { this.books.add(b1); public void removebook(book b1) { this.books.remove(b1); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

42 public void addperson(person p1) { this.people.add(p1); public void removeperson(person p1) { this.people.remove(p1); public boolean checkout(book b1, Person p1) { int booksout = this.getbooksforperson(p1).size(); if ((b1.getperson() == null) && booksout < p1.getmaximumbooks()){ b1.setperson(p1); return true; else { return false; public boolean checkin(book b1) { if (b1.getperson()!= null) { b1.setperson(null); return true; else { return false; public ArrayList<Book> getbooksforperson(person p1) { ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if ((abook.getperson()!= null) && (abook.getperson().getname().equals(p1.getname()))) { result.add(abook); return result; public ArrayList<Book> getavailablebooks() { Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

43 ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if (abook.getperson() == null) { result.add(abook); return result; public ArrayList<Book> getunavailablebooks() { ArrayList<Book> result = new ArrayList<Book>(); for (Book abook : this.getbooks()) { if (abook.getperson()!= null) { result.add(abook); return result; public String tostring() { return this.getname() + ": " + this.getbooks().size() + " books; " + this.getpeople().size() + " people."; public static void main(string[] args) { // create a new MyLibrary MyLibrary testlibrary = new MyLibrary("Test Drive Library"); Book b1 = new Book("War And Peace"); Book b2 = new Book("Great Expectations"); b1.setauthor("tolstoy"); b2.setauthor("dickens"); Person jim = new Person(); Person sue = new Person(); jim.setname("jim"); sue.setname("sue"); testlibrary.addbook(b1); testlibrary.addbook(b2); testlibrary.addperson(jim); testlibrary.addperson(sue); System.out.println("Just created new library"); Copyright 2007 Mark Dexter. Licensed under the Educational Community License version / 44

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

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

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

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

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

Sikeres végrehajtás(pass): ez azt jelenti, hogy a teszt rendben lefutott, és az ellenőrzési feltételek mind teljesültek. 1 1. fejezet A JUnit tesztelési környezet A JUnit egy szabad forráskódú modultesztelő rendszer, amely Java programjaink automatikus teszteléséhez nyújt segítséget. A rendszer letölthető a http://junit.org

Részletesebben

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

C#, OOP. Osztályok tervezése C#-ban C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat

Részletesebben

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

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

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

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

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

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

OOP: Java 4.Gy: Java osztályok

OOP: Java 4.Gy: Java osztályok OOP: Java 4.Gy: Java osztályok. 36/1 B ITv: MAN 2019.03.02 Feladat Készítsen el egy Employee osztályt és egy Employee osztályt használó osztályt (EmpProgram). Az Employee osztálynak: van name és salary

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

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

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

OOP: Java 7.Gy: Öröklődés, referenciák

OOP: Java 7.Gy: Öröklődés, referenciák OOP: Java 7.Gy: Öröklődés, referenciák 37/1 B ITv: MAN 2019.03.26 Öröklődés Egységbezárás (az egyik OOP alapelv) : az adatokat és rajtuk végzett műveleteket egy egységként kezeljük, ez az egység az osztály.

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

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

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

Java I. A Java programozási nyelv

Java I. A Java programozási nyelv Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem

Részletesebben

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

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

Útmutató az OKM 2007 FIT-jelentés telepítéséhez Útmutató az OKM 2007 FIT-jelentés telepítéséhez 1. OKM 2007 FIT-JELENTÉS ASZTALI HÁTTÉRALKALMAZÁS telepítése 2. Adobe Acrobat Reader telepítése 3. Adobe SVG Viewer plugin telepítése Internet Explorerhez

Részletesebben

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

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

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

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése ÁNYK53 Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése Az ÁNYK53 egy keretprogram, ami a személyi jövedelemadó bevallás (SZJA,

Részletesebben

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

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

Részletesebben

15.4.2a Laborgyakorlat: Böngésző beállítása

15.4.2a Laborgyakorlat: Böngésző beállítása 15.4.2a Laborgyakorlat: Böngésző beállítása Bevezetés Nyomtasd ki a laborgyakorlatot és oldd meg a feladatokat! A laborgyakorlat során a Microsoft Internet Explorer beállításait fogjuk konfigurálni. Az

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title; PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Telepítési útmutató a SMART Notebook 10 SP1 szoftverhez

Telepítési útmutató a SMART Notebook 10 SP1 szoftverhez Tisztelt Felhasználó! Telepítési útmutató a SMART Notebook 10 SP1 szoftverhez Ezt a dokumentációt abból a célból hoztuk létre, hogy segítse Önt a telepítés során. Kövesse az alábbi lépéseket, és a telepítés

Részletesebben

iseries Client Access Express - Mielőtt elkezdi

iseries Client Access Express - Mielőtt elkezdi iseries Client Access Express - Mielőtt elkezdi iseries Client Access Express - Mielőtt elkezdi ii iseries: Client Access Express - Mielőtt elkezdi Tartalom Rész 1. Client Access Express - Mielőtt elkezdi.................

Részletesebben

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

Telenor Webiroda. Kezdő lépések

Telenor Webiroda. Kezdő lépések Telenor Webiroda Kezdő lépések Virtuális Tárgyaló Tartalom 1. Bevezetés...2 2. A szolgáltatás elérése és a kliensprogram letöltése...3 3. A kliensprogram telepítése...6 4. A Virtuális Tárgyaló használatba

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java

Részletesebben

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

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform

Részletesebben

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 3.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11

1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Tartalomjegyzék 1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Géptől gépig... 11 Számok a gépeknek... 13 Nevek az embereknek... 14 Programok egymás

Részletesebben

KIRA. KIRA rendszer. Telepítési útmutató v1

KIRA. KIRA rendszer. Telepítési útmutató v1 KIRA rendszer Telepítési útmutató v1 1. Bevezetés A dokumentáció, illetve a dokumentáció mellékleteként megtalálható állományok segítségével készíthető fel a kliens oldali számítógép a KIRA rendszer működtetésére.

Részletesebben

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

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség A JAVA TECHNOLÓGIA LÉNYEGE Programozás III Többlépcsős fordítás JAVA ALAPOK Platformfüggetlenség A JAVA TECHNOLÓGIA LÉNYEGE JAVA PLATFORM Két komponense: Java Virtual Machine (JVM) Java Application Programming

Részletesebben

Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában.

Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában. Tisztelt Ügyfelünk! Az alábbiakban szeretnénk segítséget nyújtani Önnek a CIB Internet Bankból történő nyomtatáshoz szükséges böngésző beállítások végrehajtásában. A CIB Internet Bankból történő nyomtatás

Részletesebben

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

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 1. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Követelmények Gyakorlatok látogatása kötelező! (maximum 2 igazolatlan hiányzás) 2 db kisdolgozat

Részletesebben

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

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,

Részletesebben

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

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. 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

Részletesebben

Gyakorlati vizsgatevékenység B

Gyakorlati vizsgatevékenység B Gyakorlati vizsgatevékenység B Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Az ActiveX beállítása

Az ActiveX beállítása Az ActiveX beállítása Windows XP, Vista és Windows 7 operációs rendszeren 1(9) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. Operációs rendszer követelmények... 3 4. Az ActiveX-ről...

Részletesebben

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

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

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

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

A CA-42 adatkommunikációs kábel gyors telepítési útmutatója

A CA-42 adatkommunikációs kábel gyors telepítési útmutatója A CA-42 adatkommunikációs kábel gyors telepítési útmutatója 9234594 2. kiadás A Nokia, a Nokia Connecting People és a Pop-Port a Nokia Corporation bejegyzett védjegyei. Copyright 2005 Nokia. Minden jog

Részletesebben

Útmutató az ActiveX valamit az Internet Explorer egyéb beállításaihoz. Windows 7, 8, 8.1 és 10 operációs rendszerekhez

Útmutató az ActiveX valamit az Internet Explorer egyéb beállításaihoz. Windows 7, 8, 8.1 és 10 operációs rendszerekhez Útmutató az ActiveX valamit az Internet Explorer egyéb beállításaihoz Windows 7, 8, 8.1 és 10 operációs rendszerekhez 1 Tartalomjegyzék 1 Bevezető... 3 2 Támogatott operációs rendszerek és internet böngészők...

Részletesebben

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén Tartalomjegyzék 1. A CAPICOM ACTIVEX KOMPONENS TELEPÍTÉSE...3

Részletesebben

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató Közoktatási Statisztika Tájékoztató 2012/2013 Tartalomjegyzék 1. Technikai információk... 2 2. Publikus felület... 2 2.1 Bejelentkezés... 2 2.2 Összesítés... 3 2.2.1 Statisztikai tábla megtekintése...

Részletesebben

JNDI - alapok. Java Naming and Directory Interface

JNDI - alapok. Java Naming and Directory Interface JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított

Részletesebben

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

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai Objektum: A való világ egy elemének ábrázolása, amely minden esetben rendelkezik: Állapottal,Viselkedéssel,Identitással

Részletesebben

Szia Ferikém! Készítek neked egy leírást mert bánt, hogy nem sikerült személyesen megoldani a youtube problémát. Bízom benne, hogy segít majd.

Szia Ferikém! Készítek neked egy leírást mert bánt, hogy nem sikerült személyesen megoldani a youtube problémát. Bízom benne, hogy segít majd. Szia Ferikém! Készítek neked egy leírást mert bánt, hogy nem sikerült személyesen megoldani a youtube problémát. Bízom benne, hogy segít majd. Első lépés: Töltsd le a programot innen: http://download.vessoft.com/files/fyds/freeyoutubedownoad.exe

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

ERserver. iseries. Az iseries Access for Windows használatának megkezdése

ERserver. iseries. Az iseries Access for Windows használatának megkezdése ERserver iseries Az iseries Access for Windows használatának megkezdése ERserver iseries Az iseries Access for Windows használatának megkezdése ii iseries: Az iseries Access for Windows használatának

Részletesebben

E-Freight beállítási segédlet

E-Freight beállítási segédlet E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet

Részletesebben

Telepítési útmutató a SMART Response 2009 szoftverhez

Telepítési útmutató a SMART Response 2009 szoftverhez Telepítési útmutató a SMART Response 2009 szoftverhez Tisztelt Felhasználó! Ezt a dokumentációt abból a célból hoztuk létre, hogy segítse Önt a telepítés során. Kövesse az alábbi lépéseket, és a telepítés

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése i Saját Subversion tároló üzemeltetése ii KÖZREMŰKÖDŐK CÍM : Saját Subversion tároló üzemeltetése TEVÉKENYSÉG NÉV DÁTUM ALÁÍRÁS ÍRTA Jeszenszky, Péter 2014. február 16. VERZIÓTÖRTÉNET VERZIÓ DÁTUM LEÍRÁS

Részletesebben

Bluetooth párosítás. Felhasználói útmutató

Bluetooth párosítás. Felhasználói útmutató Bluetooth párosítás Felhasználói útmutató Copyright 2012, 2016 HP Development Company, L.P. A Microsoft, a Windows és a Windows Vista a Microsoft Corporation az Egyesült Államokban bejegyzett védjegyei.

Részletesebben

JavaScript Web AppBuilder használata

JavaScript Web AppBuilder használata JavaScript Web AppBuilder használata Kiss András Esri Magyarország Kft. 2015. október 8. Az ArcGIS Platform lehetővé teszi a Web GIS-t Térinformatika elérése bárhonnan Desktop Web Eszköz Egyszerű Egységes

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

Netlock Kft. által kibocsátott elektronikus aláírás telepítése Windows XP SP3 Internet Explorer 8 böngészőbe

Netlock Kft. által kibocsátott elektronikus aláírás telepítése Windows XP SP3 Internet Explorer 8 böngészőbe Netlock Kft. által kibocsátott elektronikus aláírás telepítése Windows XP SP3 Internet Explorer 8 böngészőbe 1. Indítsa el az Internet Explorer 8-as böngészőt. (Windows XP esetén: Start menü > Internet

Részletesebben

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén Tartalomjegyzék 1. Az Internet Explorer 9 megfelelősségének

Részletesebben

Gyökértanúsítványok telepítése Windows Mobile operációs rendszerekre

Gyökértanúsítványok telepítése Windows Mobile operációs rendszerekre Gyökértanúsítványok telepítése Windows Mobile operációs rendszerekre Windows Mobile 2003 / 2003 SE / WM 5 / WM6 rendszerekre 1(8) 1. Tartalomjegyzék 1. Tartalomjegyzék... 2 2. Bevezető... 3 3. A Windows

Részletesebben

2008-2009 VECTRUM Kft. VECTRUM e-számla Felhasználói útmutató 1.2 verzió

2008-2009 VECTRUM Kft. VECTRUM e-számla Felhasználói útmutató 1.2 verzió 2008-2009 VECTRUM Kft. VECTRUM e-számla Felhasználói útmutató 1.2 verzió Tartalomjegyzék Első használat... 3 Felhasználói regisztráció... 8 Szolgáltatói ügyfél regisztráció... 10 Számlalista... 12 2008

Részletesebben

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge Tartalomjegyzék Bevezetés 2 Szükséges hardver és szoftver konfiguráció 3 Testreszabások lementése előző Solid Edge verzióból 4 Előző Solid

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

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

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

Telepítési útmutató a SMART Notebook 10.6 oktatói szoftverhez

Telepítési útmutató a SMART Notebook 10.6 oktatói szoftverhez Telepítési útmutató a SMART Notebook 10.6 oktatói szoftverhez Tisztelt Felhasználó! Ezt a dokumentációt abból a célból hoztuk létre, hogy segítse Önt a telepítés során. Kövesse az alábbi lépéseket, és

Részletesebben

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

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt Internetkonfigurációs követelmények Annak érdekében, hogy csatlakoztatni tudja a Hozzáférési Pontját a Hozzáférési Pont Kezelőhöz, a következő konfigurációs paramétereket kell beállítania a számítógépe

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

Objektumorientált Programozás VI.

Objektumorientált Programozás VI. Objektumorientált Programozás Metódusok Paraméterek átadása Programozási tételek Feladatok VI. ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Bevezetés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Információk Képzés Programtervező Informatikus BSc, nappali tagozat, C szakirány Tárgykód: IP-17cPROGT1EG Előfeltétel

Részletesebben

Gyakorlati vizsgatevékenység A

Gyakorlati vizsgatevékenység A Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

Felhasználói kézikönyv. Verzió: 1.01

Felhasználói kézikönyv. Verzió: 1.01 Felhasználói kézikönyv Verzió: 1.01 Tartalomjegyzék Általános áttekintés 3 A DocGP rendszer célja 3 A rendszer által biztosított szolgáltatások 3 A felhasználói felület elérése 3 JAVA JRE telepítése 3

Részletesebben

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

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész Java Programozás 5. Gy: Java alapok Adatkezelő 1.rész 27/1 B ITv: MAN 2018.04.13 Feladat Egy nagyon hosszú feladatmegoldásba kezdünk bele: létrehozunk egy adatkezelő programot, sok-sok extrával: 27/2 A

Részletesebben

Programozási technológia I.

Programozási technológia I. Programozási technológia I. 2.gyakorlat A tárgy célja A tárgy alapvető Java ismeretek nyújt. A fő célja, hogy a hallgatók képesek legyenek az UML diagramokból Java kód előállítására. Félév tematikája Bevezetés,

Részletesebben

eszemélyi Kliens Szoftvercsomag

eszemélyi Kliens Szoftvercsomag Belügyminisztérium eszemélyi Kliens Szoftvercsomag Telepítési Útmutató 1 Bevezetés 1.1 Jelen dokumentum célja Az alábbi dokumentum írja le, hogy hogyan kell telepíteni az eszemélyi Kliens szoftvercsomagot.

Részletesebben

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

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás: Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból

Részletesebben

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22 Unit Teszt Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 1 / 22 Tartalomjegyzék 1 Bevezetés 2 Unit Teszt 3 Példa Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 2 / 22 Szoftvertesztelés

Részletesebben

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

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

MEGÚJÍTOTT GIROLOCK_CA TANÚSÍTVÁNYCSERE

MEGÚJÍTOTT GIROLOCK_CA TANÚSÍTVÁNYCSERE MEGÚJÍTOTT GIROLOCK_CA TANÚSÍTVÁNYCSERE Technikai segédlet webes alkalmazás használata esetén 1054 Budapest, Vadász utca 31. Telefon: (1) 428-5600, (1) 269-2270 Fax: (1) 269-5458 www.giro.hu Készítette

Részletesebben

1. DVNAV letöltése és telepítése

1. DVNAV letöltése és telepítése 1. DVNAV letöltése és telepítése A Drén és Valner Szoftver Kft által készített DVNAV programmal lehetőség van a számlázó program által elkészített XML-ek NAV-hoz történő eljuttatására, majd a számlákról

Részletesebben

Digitális aláíró program telepítése az ERA rendszeren

Digitális aláíró program telepítése az ERA rendszeren Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

1 Rendszerkövetelmények

1 Rendszerkövetelmények 1 Rendszerkövetelmények 1.1 Operációs rendszer Az i-deal2 ajánlatadó alkalmazás a Microsoft.Net és Click Once technológiáin alapul. Ezek használatához legalább Microsoft Windows XP SP2 (Szervízcsomag 2),

Részletesebben

RapidMiner telepítés i. RapidMiner telepítés

RapidMiner telepítés i. RapidMiner telepítés i RapidMiner telepítés ii COLLABORATORS TITLE : RapidMiner telepítés ACTION NAME DATE SIGNATURE WRITTEN BY Jeszenszky, Péter 2014. szeptember 17. REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Tartalomjegyzék

Részletesebben

A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része.

A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része. Unit test A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része. Unit tesztekkel ellenőrizhető, hogy egy unit az elvárásoknak

Részletesebben