Download - Prog2, Java bevezetés
![Page 1: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/1.jpg)
Prog2, Java bevezetés
Magasszintű programozási nyelvek 2 mérnök informatikus BSc előadás
Dr. Bátfai Norbert egyetemi adjunktus http://www.inf.unideb.hu/~nbatfai/ Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék [email protected] Skype: batfai.norbert Prog2_1.ppt, v.: 0.0.3, 2011. 11. 27. http://www.inf.unideb.hu/~nbatfai/ http://nehogy.fw.hu/ Az óra blogja: http://progpater.blog.hu/ A Nokia Ovi store-ban is elérhető: http://store.ovi.com/content/100794
![Page 2: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/2.jpg)
Bátfai Norbert Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék <[email protected], nbatfai gmail com> Copyright © 2011 Bátfai Norbert E közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjesztésére és/vagy módosítására a Szabad Szoftver Alapítvány által kiadott GNU Szabad Dokumentációs Licenc 1.2-es, vagy bármely azt követő verziójának feltételei alapján. Nem változtatható szakaszok: A szerzőről. Címlap szövegek: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra. Hátlap szövegek: GNU Jávácska, belépés a gépek mesés birodalmába. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being: A szerzőről, with the Front- Cover Texts being: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra, and with the Back-Cover Texts being: GNU Jávácska, belépés a gépek mesés birodalmába.
Felhasználási engedély
http://www.gnu.hu/fdl.html
![Page 3: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/3.jpg)
Kapcsoldó videók, videómagyarázatok és blogok
1) Még jőni kell, még jőni fog Egy jobb kor*: http://progpater.blog.hu/2011/09/05/bearazzuk_az_elso_labort
2) Városi hangya (2) http://progpater.blog.hu/2011/04/26/varosi_hangya_2
Az előadás és a labor posztja ez
![Page 4: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/4.jpg)
Célok és tartalom Előadás a) A kurzus teljesítésének feltételei, szabályai b) Általános kép adása a programozásról c) A Java platform átismétlése d) Java nyelvi bevezetés: karakterkészlet, elemi típusok, vezérlési szerkezetek,
deklarációk, tömbök, kifejezések, paraméterátadás, osztályok, példány és osztály szintű attribútumok és metódusok, hozzáférési kategóriák, konstruktor, öröklődés.
Labor a) NetBeans, Maven használata b) javac, java használata parancssorból c) az API dokumentáció használata d) a Javát tanítok példáinak felélesztése Laborkártyák a) Atan kártyák Otthoni opcionális feladat a) GNU/Linux rendszer telepítése, s a japán világbajnok HELIOS csapat
szoftvereinek otthoni installálása (rcssserver, rcssmonitor stb.) http://www.youtube.com/watch?v=BVWkndHk3AE http://en.sourceforge.jp/projects/rctools/releases/
b) Atan kipróbálása: http://sourceforge.net/projects/atan1/
![Page 5: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/5.jpg)
Minimális gyakorlati cél A hallgató meg tudjon írni (másolás alapján) és le tudjon fordítani egyszerű kis Java programokat, majd tudja azokat futtatni, illetve a Javát tanítok példáit fel tudja éleszteni: http://www.tankonyvtar.hu/informatika/javat-tanitok-javat-080904 Egy „Helló, Világ!” szintű (általam forrásban adott) megfelelő példát fel tudjon éleszteni az alábbi megfelelő platformokon: Java SE, Java ME, Java EE, Android Java, leJOS
![Page 6: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/6.jpg)
Minimális elméleti cél 1) A hallgató ismerje a Java platformot, a Java SE, Java ME, Java EE, Android
Java, leJOS platformon legalább egy, akár csak „Helló, Világ!” szintű saját tapasztalatairól tudjon beszélni
2) Java nyelv kapcsán: karakterkészlet, elemi típusok, vezérlési szerkezetek, deklarációk, tömbök, kifejezések, paraméterátadás, osztályok, példány és osztály szintű attribútumok és metódusok, hozzáférési kategóriák, konstruktor, öröklődés.
![Page 7: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/7.jpg)
Szabályok (labor) a) Laboron katalógus, hiányzás >= 3.5 (laborkártya miatt tört) esetén nincs
aláírás b) Labor teljesítésének további szükséges feltétele egy saját program
bemutatása a laborközösség előtt, a félév utolsó 5 laborjának valamelyikén. A feladat kötött: egy céges vagy egy egyetemi feladat.
c) Laboron van a „bajnokság van, mindenki nevezett” intézmény, 6 győzelem (trófea, pont) = +1 jeggyel jobb vizsgaeredmény (de ez csak elégtelennél jobb eredményre működik), 18 = +2, 54 = +3.
d) Laboron bevezetjük a laborkártya rendszert: ez azt szolgálja, hogy a hallgatóság készüljön a laborokra. Egy laborkártya egy vagy néhány egyszerű, előre megadott kérdést tartalmaz, amin a labor elején szóban minden hallgató megválaszol. Aki nem tudja megválaszolni, az a következő laboron biztosan kap egy kártyát. Két „nem tudásonként” egy laborhiányzást könyvelünk el! Nem minden előadás ad szükségképpen laborkártyákat, a megadott kártyák a következő héttől élnek a laborokon.
![Page 8: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/8.jpg)
Szabályok a) Van jegymegajánlás, de csak a Vadászok Ligájában:
http://progpater.blog.hu/2011/05/01/indul_a_vadaszok_ligaja , de most itt 100 pont az, ami 50 volt a prog1-en és természetesen csak jeles.
b) Az írásbeli vizsga tesztvizsga, amin bármilyen segédeszköz használható, kivéve a kommunikáció másokkal.
c) A szóbeli vizsga tételei az előadások címével egyeznek meg, tipikus tétel a „minimális elméleti cél” című fólián megadott tartalom.
d) Előadáson is van katalógus, aki <= 2 alkalommal hiányzott, annak +5% az írásbeli teszten
e) Az írásbeli és a szóbeli vizsgán bármi (jegyzet, könyv, forráskód, számítógép, mobiltelefon stb.) használható! (Az írásbeli vizsgán beszélni, vagy elektronikusan mással kommunikálni viszont tilos.)
![Page 9: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/9.jpg)
Működnek a szabályok
http://progpater.blog.hu/2011/06/06/egy_informatikai_targy_vizsgajan
![Page 10: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/10.jpg)
Web2 diákok Web2 tanárok
http://nodes.agr.unideb.hu/if2011/dokumentum/IF2011_CD_Kiadvany.pdf
![Page 11: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/11.jpg)
Tavalyi (p1) eredmények a) Jegymegajánlás:
http://progpater.blog.hu/2011/05/11/don_t_forget_to_breathe b) Vizsgaeredmények:
http://progpater.blog.hu/2011/06/26/lucifer_szaz_meresz_belehullt_te_lessz_a_boldog_aki_atugorja
190001900ral
1900101900ral
1900201900ral
1900301900ral
190091900ral
1900191900ral
1900291900ral
1900101900ral
1900201900ral
1 2 3 4 5
159 vizsgázóból 138 teljesítette sikerrel a kurzust (ez ~86,7%, az összes 192 hallgató vonatkozásában ~71,8%).
![Page 12: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/12.jpg)
Mottóink, nem változtak
„Csak akkor értesz valamit, ha be tudod programozni. Te magad és nem valaki más! Ha nem tudod beprogramozni, akkor csak úgy gondolod, hogy érted.” - Gregory Chaitin: META MATH! The Quest for Omega
http://www.cs.auckland.ac.nz/CDMTCS/chaitin/omega.html
„Nem tudok kimerítő leírást adni arról, hogy hogyan tudsz megtanulni programozni -- nagyon összetett tudásról van szó. Egyet azonban elárulhatok: a könyvek és tanfolyamok nem érnek túl sokat (sok, valószínűleg a legtöbb hacker autodidakta). Aminek van értelme: (a) kódot olvasni és (b) kódot írni.” - Eric Steven Raymond: How To Become A Hacker A magyar fordítás: http://esr.fsf.hu/hacker-howto.html
„Talk to other programmers; read other programs. This is more important than any book or training course.” - Peter Norvig: Teach Yourself Programming In Ten Years
http://norvig.com/21-days.html
![Page 13: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/13.jpg)
A szentek keze (a laborokhoz)
Megtalálható a könyvtárunkban, vagy: http://www.eurosmobil.hu/NehogyMar/index.html
Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! : A prog-ramozás egy szellemi sport: ismerd meg te is az alaplépéseket! http://www.eurosmobil.hu/NehogyMar
NM 2-7
Bátfai Norbert, Juhász István: Javát tanítok: Bevezetés a programozásba a Turing gépektől a CORBA technológiáig. http://www.tankonyvtar.hu/informatika/javat-tanitok-javat-080904 Pdf: http://www.tankonyvtar.hu/site/upload/pdf/b10108.pdf
JT 2-7
![Page 14: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/14.jpg)
Bátfai Norbert: Nehogy már megint a mobilod nyomkodjon Téged! Elérhető lesz még ebben a félévben! NMM 2-7
Bátfai Norbert: Mesterséges intelligencia a gyakorlatban: bevezetés a robotfoci programozásba Elérhető lesz még ebben a félévben!
RC 2-7
A szentek keze (a laborokhoz)
![Page 15: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/15.jpg)
http://webpac.lib.unideb.hu/WebPac/CorvinaWeb?action=onelong&showtype=l
onglong&recnum=498662&pos=5 Cím: Java 2 : útikalauz programozóknak : 5.0 / Nyékyné Gaizler Judit [et al.] Kiadás: 8. átdolg., bőv. kiad. Megjelenés: Budapest : ELTE TTK Hallgatói Alapítvány, 2008 Terjedelem: 2 köt. : ill. ; 24 cm ETO jelzet: 004.438Java ISBN: 9789630640923 Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, Budapest, 2007, Szak K
A kurzus alapkönyvei
NYJ 1-55 NYJ 1-59
![Page 16: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/16.jpg)
http://www.oracle.com/us/corporate/advertising/411m-crp-java3billdevices-sec-396163.pdf
![Page 17: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/17.jpg)
Linux és Java (ism) 2008-2009
http://www.gartner.com/it/page.jsp?id=1306513
![Page 18: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/18.jpg)
http://www.gartner.com/it/page.jsp?id=1543014
Linux és Java (ism) 2009-2010
![Page 19: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/19.jpg)
Linux és Java 2010 - 2011 második negyedév
http://www.gartner.com/it/page.jsp?id=1764714
![Page 20: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/20.jpg)
A Java fejlesztés menete
Java
forrás
Bájt-
kód
JVM
Linux PC
JVM
Windows
PC
JVM JVM JVM
Solaris
szerver
Nokia
mobil
Motorola
mobil
JVM
LEGO
robot
Fizikai
gépek
Virtuális gép (JVM, Java Virtual Machine)
Java nyelv
Forrás: Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! DEENK 2008.
![Page 21: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/21.jpg)
Kávé bébi, a bájtkód
![Page 22: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/22.jpg)
Java platform és hordozhatóság
Forrás: Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! DEENK 2008.
Linux PC Windows
PC
Solaris
szerver
Nokia
mobil
Motorola
mobil
JVM
LEGO
robot
Java nyelv
Java SE
Java ME
Java EE
leJOS
Servlet Applet MIDlet
![Page 23: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/23.jpg)
Android Linux kernel
![Page 24: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/24.jpg)
Java platform és hordozhatóság
Forrás: Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! DEENK 2008.
Linux PC Windows
PC
Solaris
szerver
Nokia
mobil
Motorola
mobil
JVM
LEGO
robot
Java nyelv
Java SE
Java ME
Java EE
leJOS
Servlet Applet MIDlet
Android
Activity
Dalvik
Androidos Linux
eszközök
![Page 25: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/25.jpg)
2006. november, a Sun megnyitja a Java-t
Java ME – phoneME (Mobile & Embedded)
http://community.java.net/mobileandembedded/
Java SE – OpenJDK
http://openjdk.java.net/
Java EE – GlassFish
https://glassfish.dev.java.net/
Nincs Java csapda, GNU GPL v2
![Page 26: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/26.jpg)
A Java „beszerzése”
„Sun”-os Java: http://www.oracle.com/technetwork/java/index.html OpenJDK: http://openjdk.java.net/
A királyi út http://www.oracle.com/technetwork/java/javase/downloads/index.html És innen a mindenkori JDK <verzió, most 7> Update <verzió, most > with NetBeans <verzió, most 7>
Külön feltenni a JDK-t, majd http://www.netbeans.org/ JAVA_HOME, a telepítési könyvtárra PATH , annak bin-jére
Java SE
![Page 27: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/27.jpg)
A parancssori interfész (CLI) Nem szerencsés a sajnos szokásos kifogás, hogy „én Windows-t használok”, mert
a különbség itt például ; és : illetve % és $ és máshogy dőlnek a perjelek.
![Page 28: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/28.jpg)
A NetBeans IDE használata – Java SE
![Page 29: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/29.jpg)
A NetBeans IDE használata – Java SE
![Page 30: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/30.jpg)
Hatodik Java forrás fájlunk: DocBook6.java:
http://www.inf.unideb.hu/~nbatfai/ppmkonyv.html
A NetBeans IDE használata – Java SE
![Page 31: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/31.jpg)
A NetBeans IDE használata
![Page 32: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/32.jpg)
The XSLT and XQuery
Processor
http://saxon.sourceforge.net/
A NetBeans IDE használata – Java SE
![Page 33: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/33.jpg)
A NetBeans IDE használata
![Page 34: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/34.jpg)
c:\Documents and
Settings\DocBook6\ppmkonyv.html
![Page 35: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/35.jpg)
A parancssor használata (Windows) C:\Documents and Settings\Bátfai Norbert>set PATH="c:\Program Files\Java\jdk1.6.0_07\bin" / ;%PATH% C:\Documents and Settings\Bátfai Norbert>java -version java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing) C:\Documents and Settings\Bátfai Norbert>cd .. C:\Documents and Settings>cd DocBook6 C:\Documents and Settings\DocBook6>cd src C:\Documents and Settings\DocBook6\src>javac DocBook6.java C:\Documents and Settings\DocBook6\src>java -cp "c:\Documents and Settings\Bátfai / Norbert\Dokumentumok\Letöltés\XML\SAXON6-5-5\saxon.jar;." DocBook6 Érvényes.
Ugyanez most parancssorból!
![Page 36: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/36.jpg)
A parancssor használata (Linux)
nbatfai@hallg:~/IS2009$ export PATH=/home/nbatfai/Java/jdk1.6.0_11/bin:$PATH$ nbatfai@hallg:~/IS2009$ java -version java version "1.6.0_11" Java(TM) SE Runtime Environment (build 1.6.0_11-b03) Java HotSpot(TM) 64-Bit Server VM (build 11.0-b16, mixed mode) nbatfai@hallg:~/IS2009$ javac DocBook6.java nbatfai@hallg:~/IS2009$ java -cp ../Letoltes/XML/SAXON6-5-5/saxon.jar:. DocBook6 Érvényes.
Ugyanez most parancssorból!
![Page 37: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/37.jpg)
Alkalmazás architektúrák
Kliens-szerver modell
3 rétegű alkalmazások
p2p architektúra
Adatbázis réteg Üzleti logika Webes logika Kliensek
WEB konténer
Böngészőben
vékony kliensek
![Page 38: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/38.jpg)
Java EE API-k
Adatbázis réteg Üzleti logika Webes logika Kliensek
EJB konténer WEB konténer Böngészőben
vékony kliensek
Enterprise
JavaBeans
EJB Java Servlet
JavaServer
Pages JSP Java Database
Connectivity
JDBC
(Java Naming and Directory JNDI)
![Page 39: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/39.jpg)
Java EE/szervletek, Tomcat
PP 169
HTTP
szerver oldal kliens oldal
böngésző
kérés
válasz
szerver
szervlet
objektum
http://...
<html>
<body>
Hello, ez a
/index.html.
</body>
</html>
![Page 40: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/40.jpg)
Java EE/szervletek, Tomcat
PP 169
![Page 41: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/41.jpg)
Szervletek, Tomcat, parancssorból
PP 169
![Page 42: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/42.jpg)
Szervletek, Tomcat, parancssorból
C:\apache-tomcat-6.0.18\bin>javac -cp ..\lib\servlet-api.jar
..\webapps\prog-pat
er\WEB-INF\classes\VisszajelzesekSzervlet.java
PP 169
Szervletek, Tomcat
PP 169, 204
Ezt a példát viszi tovább a PP 204, itt MySQL vagy PostgreSQL
adatbázisból szedjük ki szervletből a visszajelzéseket.
http://localhost:8080/prog-pater/lista
![Page 43: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/43.jpg)
Szervletek, Tomcat, a NetBeans-ből
![Page 44: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/44.jpg)
WebSynergy a szoftver törzsfejlődés korai szakaszában Sun Java System Portal Server
„Project WebSynergy is the next-generation web aggregation
and presentation platform from SunTM Microsystems. This
platform includes developer tools and an enterprise-grade
presentation runtime based on Liferay Portal Server,
GlassFishTM version 2 or version 3 software, and MySQLTM
software.”
http://docs.sun.com/app/docs/doc/820-6876/ghkhz?a=view
http://progpater.blog.hu/2011/04/29/drupalosoknak_joomlasoknak_erre_csorogatjak_a
_nyalukat
![Page 45: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/45.jpg)
TARTALMAK KÖZÖSSÉGEK
EGYÜTTMŰKÖDÉS
Precízen szabályozható, hogy
mely csoportok mely tartalmakkal mit
tehetnek, nyilvános lapok, privát lapok stb.
Wikik, blogok,
aktivitás RSS-ek,
kérdések, szavazás,
találkozó szervezés,
fórum stb.
Felhasználók
közösségeket
alkothatnak,
szabályozhatnak
(például egy oktató
adott TDK témásai).
WebSynergy
![Page 46: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/46.jpg)
GNU/Linux, Solaris, Windows - tetszőleges
Java EE / GlassFish v2 vagy v3
Projekt WebSynergy
MySQL
OS
Alkalmazás-
szerver
és adatbázis
Liferay Portal Server Web 2.0
Hagyományos
kliensek
Mobil
kliensek
Fejlesztés:
NetBeans IDE
WebSynergy
![Page 47: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/47.jpg)
Gyökerek: Sun Java System Portal Server
WebSynergy: a JavaOne 2008-on bejelentik a Sun és a Liferay
együttműködését: http://beta.glassfish.java.net:81/lp/
Licenc: CDDL (OSI és DSFG által nyíltnak elfogadott, de nem
GPL kompatibilis, mert más licencű részekkel is össze
lehet kapcsolni.
(ingyenesen használhatjuk)
WebSynergy
![Page 48: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/48.jpg)
http://dev.inf.unideb.hu:8080
Sun Java System Portal Server, WebSynergy, GlassFish Web Space Server
http://download.java.net/portalserver/
![Page 49: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/49.jpg)
Java ME
MIDlet
MIDP
CLDC
Canvas Display
Random
Double
Sprite
RecordSt
ore
Thread
Forrás: Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! DEENK 2008.
javax
microedition
midlet lcdui rms
MIDlet
Canvas Display
Record
Store
Adott OO rendszerek megismerése
![Page 50: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/50.jpg)
Adott OO rendszerek megismerése
![Page 51: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/51.jpg)
Forrás: Bátfai Norbert: Mobiltelefonos játékok tervezése és fejlesztése, Doktori (PhD)
értekezés, http://sourceforge.net/projects/javacska/
Eurosmobil Open Source – Jávácska ONE
„A 102%, 104% Nyári, Úszós
Kapitális forrásaiból készítjük el a
megnyitott „110% Nyári Kapitális
NYFK” játékot.”
Bátfai Norbert: Nehogy már megint
a mobilod nyomkodjon Téged!
Elérhető lesz még ebben a félévben!
Ezeknek a megnyitott játékoknak a
továbbfejlesztéséről szól.
![Page 52: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/52.jpg)
„Az Örömfoci és a Fociünnep forrásaiból
készítjük el a megnyitott „Focijáték Neked
NYFK” játékot.”
„A Hetedik Szem forrásaiból készítjük el
a megnyitott „Hetedik Szem NYFK”
játékot.”
Eurosmobil Open Source – Jávácska ONE
Forrás: Bátfai Norbert: Mobiltelefonos játékok tervezése és fejlesztése, Doktori (PhD)
értekezés, http://sourceforge.net/projects/javacska/
![Page 53: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/53.jpg)
Nehogy már példák
NehogyMar3 NehogyMar7
A erőforrások (Java források, képek, xml-ek) letöltése:
http://www.eurosmobil.hu/NehogyMar
![Page 54: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/54.jpg)
Az Eclipse IDE és az ATD használata
A következő példában felélesztjük a Nehogy már könyv 3. Androidos
példaprogramját: http://www.eurosmobil.hu/NehogyMar/index.html
![Page 55: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/55.jpg)
Nehogy már 3, Android 1.5 vs. 2.1
http://forum.inf.unideb.hu/viewtopic.php?f=47&t=222&st=0&sk=t&sd=a&start=10#p5138: Az eltelt közel egy év alatt változott pár dolog, amire figyelni kell, illetve módosítani a projekt futtatásához: A main.xml-ben: android:layout_toRight -> android:layout_toRightOf <Button android:id="@+id/kilep_gomb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/tenyer_kep" android:layout_toRightOf="@id/tenyer_kep" android:text="@string/kilep_gomb" /> A NehogyMar3Activity.java-ban: animacio.setRepeatMode(android.view.animation.Animation.CYCLE); már nincs, helyette animacio.setRepeatMode(android.view.animation.Animation.RESTART); és minden projektben id -> android:id, pl.:
<ImageView android:id="@+id/tenyer_kep"
![Page 56: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/56.jpg)
Nehogy már megint
Bátfai Norbert (2011): Mobil programozás - Nehogy már megint a
mobilod nyomkodjon Téged!, Kempelen Farkas Felsőoktatási Digitális
Tankönyvtár (2011). A TÁMOP 4.2.1 (Tananyagfejlesztés és
tartalomfejlesztés különös tekintettel a matematikai, természettudományi,
műszaki és informatikai képzésekre című) pályázat keretében írt digitális
szakkönyv, pdf a4 változatában 120 oldal. Egyelőre kéziratban áll
rendelkezésre. (Szakmai lektor: BÁTFAI ERIKA, a tárgyalt Eurosmobil
játékok játékmenedzsere, nyelvi lektor: ILLYÉSNÉ NOVÁK ILDIKÓ, angol
nyelvtanár.)
![Page 57: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/57.jpg)
Nehogy már megint
![Page 58: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/58.jpg)
new com.google.android.maps.GeoPoint (
47549541, 21638900)
Google Maps API
http://progpater.blog.hu/2011/04/26/varosi_
hangya_2
![Page 60: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/60.jpg)
Android XML
![Page 61: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/61.jpg)
Android XML
![Page 62: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/62.jpg)
LEGO® Mindstorms NXT
Az első saját robot, építési ideje kb. 10 perc.
http://www.inf.unideb.hu/~nbatfai/os/ElsoNXTRobot.ogv
![Page 63: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/63.jpg)
Az első saját robot, építési ideje kb. 10 perc.
LEGO® Mindstorms NXT
![Page 64: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/64.jpg)
A processzor tégla
Atmel 32 bites ARM7 processzor
http://www.atmel.com/dyn/resources/prod_documents/1790S.pdf
96 K SRAM (64 K)
256 K flash memória (ugyanennyi a Spirit és Opportunity marsjárókban is)
Atmel 8 bites ARV processzor, a motorok beépített forgás érzékelőjéhez
4 K flash
512 bájt RAM
![Page 65: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/65.jpg)
A processzor tégla
6 eres kábel,
RJ12 csatlakozás
(nincs -/+ → +/- ha,
mint az RCX-nél
„fordítva” tettük rá.)
12 Mbit/sec, USB, (mint a printer kábel)
kb. 30x gyorsabb, mint a Bluetooth
![Page 66: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/66.jpg)
A processzor tégla
![Page 67: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/67.jpg)
LEGO® Mindstorms NXT
Adatfolyam programozás:
http://www.hik.hu/tankonyvtar/site/books/b10108/images/prog/fa.png
![Page 68: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/68.jpg)
LEGO® Mindstorms NXT
![Page 69: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/69.jpg)
LeJOS, Java for Lego Mindstorms http://lejos.sourceforge.net
set JAVA_HOME=c:\Program Files\Java\jdk1.6.0_10
set NXJ_HOME=c:\Documents and Settings\Bátfai
Norbert\Dokumentumok\Letöltések\lejos_nxj
set PATH=%PATH%;c:\Documents and Settings\Bátfai
Norbert\Dokumentumok\Letöltések\lejos_nxj\bin
set PATH=%PATH%;c:\Program Files\Java\jdk1.6.0_10\bin
nxjflash (az oprendszer Java virtuális gépre cserélése)
![Page 70: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/70.jpg)
Szoftver követelmények
A csomagban lévő szoftver
JDK, http://java.sun.com/javase/downloads
LeJOS, http://lejos.sourceforge.net/
LibUsb-Win32, http://libusb-win32.sourceforge.net/
![Page 71: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/71.jpg)
Fejlesztés kényelmesen a NetBeans-ben
![Page 72: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/72.jpg)
LeJOS, Java for Lego Mindstorms
http://www.inf.unideb.hu/~nbatfai/os/MasodikNXTRobot.ogv
(az Elso.java :)
Programozási ideje ugyancsak kb. 10 perc., a leJOS API és tutorial alapján:
http://lejos.sourceforge.net/nxt/nxj/tutorial/Behaviors/BehaviorProgramming.htm
![Page 73: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/73.jpg)
MATYI-2 Első példa a Viselkedés API-val
http://dev.inf.unideb.hu:8080/web/api/udv?p_p_id=20&p_p_lifecycle=0&p_p_url_type=0&p_p_state=maximized&p_p_mode=view&_20_struts_action=%2Fdocume
nt_library%2Fview&_20_folderId=29205
MATYI-2
![Page 74: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/74.jpg)
Adott OO rendszerek megismerése
![Page 75: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/75.jpg)
Adott OO rendszerek megismerése
![Page 76: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/76.jpg)
![Page 77: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/77.jpg)
![Page 78: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/78.jpg)
![Page 79: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/79.jpg)
LeJOS használata
![Page 80: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/80.jpg)
Jávácska Kupa
http://www.youtube.com/watch?v=59Uq1-xgQDc
http://www.youtube.com/watch?v=EryiAshN6AA
http://www.youtube.com/watch?v=K8Jw171Kwas
http://www.youtube.com/watch?v=cxOR1hOWr0o
![Page 81: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/81.jpg)
Jávácska Kupák Jávácska Kupa
Csak egy darab alapcsomag használható fel az autóhoz,
hálózati kommunikáció tiltva.
Kiterjesztett Jávácska Kupa
Egy vagy több a robotra
rögzített mobil kamerája
veszi a pálya részeit és
Bluetooth kommunikál a
proci téglával. (Az ultrahang
szenzor lecserélése.)
Központosított Jávácska Kupa
Extrém Jávácska Kupa
http://www.youtube.com/watch?v=cxOR1hOWr0o
![Page 82: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/82.jpg)
Jávácska Kupák Jávácska Kupa
Csak egy darab alapcsomag használható fel az autóhoz,
hálózati kommunikáció tiltva.
Kiterjesztett Jávácska Kupa
Egy vagy több a robotra
rögzített mobil kamerája
veszi a pálya részeit és
Bluetooth kommunikál a
proci téglával. (Az ultrahang
szenzor lecserélése.)
Központosított Jávácska Kupa
Extrém Jávácska Kupa
http://www.telefonguru.hu/hir/Atadtak_az_uj_Nokia_Laboratoriumot_2010-10-29
![Page 83: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/83.jpg)
Jávácska Kupák Jávácska Kupa
Kiterjesztett Jávácska Kupa
Központosított Jávácska Kupa
PC-vel összekötött kamera, webkamera veszi a pályát
(akár több is) és ez alapján Bluetooth-on keresztül vezérli az autót
egy PC-s program.
Extrém Jávácska Kupa
Mindhárom hibridjei.
![Page 84: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/84.jpg)
A programozásról általában (ism)
http://www.tankonyvtar.hu/informatika/javat-tanitok-1-1-3-080904-2
Imperatív MIT, HOGYAN?
Deklaratív MIT, HOGYAN?
![Page 85: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/85.jpg)
1) Green Team
2) Oak
3) Netscape stb.: http://www.tankonyvtar.hu/informatika/javat-tanitok-1-2-1-java-
080904
A Java nyelv, történeti háttér
![Page 86: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/86.jpg)
A Java nyelv
Unix Timeline: http://www.levenez.com/unix/ Tökéletes poszterek a szobádba!
Computer Languages Timeline: http://www.levenez.com/lang/
![Page 87: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/87.jpg)
A Java nyelv
Unix Timeline: http://www.levenez.com/unix/ Tökéletes poszterek a szobádba!
Computer Languages Timeline: http://www.levenez.com/lang/
![Page 88: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/88.jpg)
Személyes tapasztalat
Computer Languages Timeline: http://www.levenez.com/lang/
I. helyezés a Java Szövetség (1999, Sun, IBM, Oracle, Novell, IQSoft) Java Programozási Versenyén a Prizma nevű szervlet programmal.
![Page 89: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/89.jpg)
I. helyezés a Java Szövetség (1999, Sun, IBM, Oracle, Novell, IQSoft) Java Programozási Versenyén a Prizma nevű szervlet programmal.
Személyes tapasztalat
![Page 90: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/90.jpg)
N. Bátfai, S. Erdei, and M. Ispány: Developing a numerical library Maja in Java. Kovács, Emőd (ed.) et al., Proceedings of the 4th International Conference on Applied Informatics. Eger-Noszvaj, Hungary, August 30-September 3, 1999. Eger: Molnár és Társa, 345 (2001)., 2001. Zbl 0997.68170 http://www.zentralblatt-math.org/zmath/en/search/?q=an:0997.68170&format=complete
http://nehogy.fw.hu/wp-content/uploads/Prog1_5.pdf, 18. fólia
Vetülete az oktatásban: „látjátok, így írták meg a Sun programozói is”!
Személyes tapasztalat
![Page 91: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/91.jpg)
Java (eredet)
http://www.tankonyvtar.hu/informatika/javat-tanitok-1-1-3-080904-2
Imperatív
Objektum orientált
és eljárás orientált
paradigma mentén
Aki Javában
programoz OO
programoz, de az
egyszerű típusok,
változó fogalom,
kifejezések mint C-
ben.
![Page 92: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/92.jpg)
Java (biztonság) Interpreteres (fordítási időben
történő ellenőrzésen túl futás
közben is)
Mutató → referencia (változó
ezt veheti fel, ha nem
egyszerű típusú, de mindig
magát az objektumot jelenti
és nem a címét)
Szemétgyűjtés
Kivételkezelés
Egy Javás és egy C/C++
fejlesztő csapat kiképzési
ideje
![Page 93: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/93.jpg)
Liskov féle helyettesítési elv (ism)
Barbara Liskov: Aata Abstraction and Hierarchy, OOPSLA '87 Addendum to
the proceedings on Object-oriented programming systems, languages and
applications (Addendum) ACM New York, NY, USA, 1987.
http://portal.acm.org/citation.cfm?doid=62138.62141
Liskov Substitution Principle (LSP)
![Page 94: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/94.jpg)
Liskov féle helyettesítési elv (ism)
T P
fgv(T t)
S
T t
fgv(t)
S s
fgv(s)
(Az ősökkel működő függvény működjön a gyermekekkel is, ugyanúgy!)
![Page 95: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/95.jpg)
Polimorfizmus (ism)
Szülő
Gyermek
Tulajdonságok (tagok, attribútumok)
Viselkedések (üzenetek, metódusok, fgv.-ek)
Esetleges új tulajdonságok, viselkedések
Esetleg a régi viselkedések máshogy
Szulo szulo = new Gyerek()
szulo.viselkedes()
?
![Page 96: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/96.jpg)
Dinamikus vagy késői kötés
Szülő
Gyermek
Tulajdonságok (tagok, attribútumok)
Viselkedések (üzenetek, metódusok, fgv.-ek)
Esetleges új tulajdonságok, viselkedések
Esetleg a régi viselkedések máshogy
Szulo* szulo = new Gyerek();
szulo->viselkedes();
?
Ha a válasz futási (és nem fordítási) időben dől el.
![Page 97: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/97.jpg)
Dinamikus vagy késői kötés
Szulo* szulo = new Gyerek();
Statikus (deklarációs)
típus
Dinamikus (példányosított)
típus
Virtuális fgv.-ek hívása a dinamikus típus alapján történik.
![Page 98: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/98.jpg)
Java C++
Szulo szulo = new Gyerek()
Minden objektum referencia.
Mindig dinamikus a kötés.
De ezzel nem küldhetjük a
Gyerek által hozott új üzeneteket
Szulo szulo = new Gyerek()
Lehet:
Szulo& szulo … referencia
Szulo* szulo … mutató
Szulo szulo … objektum
Csak akkor van dinamikus
kötés, ha a viselkedés virtuálisra
(virtual kulcsszó az ősben) van
deklarálva.
Ugyanúgy igaz, hogy ösosztály
referencián vagy pointeren keresztül,
csak az ős üzenetei küldhetőek.
![Page 99: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/99.jpg)
Java (öröklődés)
Egyszeres (többszörös interfészek között)
Polimorfizmus, dinamikus kötés
Java (láthatóság)
Csomag
Publikus
Privát
Védett
![Page 100: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/100.jpg)
Labor
![Page 101: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/101.jpg)
PageRank (1)
Page, Lawrence; Brin, Sergey; Motwani, Rajeev; Winograd, Terry.
The PageRank Citation Ranking: Bringing Order to the Web.
http://dbpubs.stanford.edu:8090/pub/1999-66/
Alapcikk
Ötlet
Azok a weblapok jobb minőségűek, amelyekre jobb minőségű lapok
mutatnak.
![Page 102: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/102.jpg)
PageRank (2)
h1
h2
h3
N(h1)=5
N(h3)=3
B(h2)={h1, h3}
)(
2
2)(
)()(
hBh hN
hPRhPR (1)
N: a kimenő linkek száma
B: a bejövő linkeket tartalmazó lapok halmaza
(idézett fóliák BN laborjairól)
![Page 103: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/103.jpg)
PageRank (4) Írjuk fel (1)-et tömörebben: a linkmátrix
nnjnn
nijii
nj
ji
ji
lll
lll
lll
L
ijjNl
lL
,,1,
,,1,
,1,11,1
,
,
0
,)(
1
)(
j i
N(j)
![Page 104: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/104.jpg)
PageRank (5) Példa a linkmátrixra
03/100
002/10
13/12/11
03/100
www.clib.dote.hu/javacska
www.javacska.hu
mobidiak.inf.unideb.hu
www.clib.dote.hu/javacska/linkek
N(JPL) = 3
N(M) = 1
N(J) = 1
N(JP) = 2
J JP JPL M
J
JP
JPL
M
![Page 105: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/105.jpg)
PageRank (6)
Írjuk fel (1)-et a linkmátrixal
)(
)( 1
nhPR
hPR
Tehát ha h jelöli a PR vektort, akkor h=Lh Linalg kedvelőknek: a PageRank vektor az L linkmátrix 1 sajátértékhez tartozó sajátvektora.
nnjnn
nijii
nj
lll
lll
lll
,,1,
,,1,
,1,11,1
n
j
jjnn
n
j
jjii
n
j
jj
hPRlhPR
hPRlhPR
hPRlhPR
1
,
1
,
1
,11
)()(
)()(
)()(
![Page 106: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/106.jpg)
PageRank (7) Billentyűzzünk be gyorsan egy olyan (most Java, korábban C progit), ami kiszámítja a
PageRank vektort a mutatott példához! Addig billentyűzzünk most, amíg ez nem jelenik meg a képernyőn: PR(J)=.09, PR(JP)=.54, PR(JPL)=.27, PR(M)=.09
A következő poszt mutatta forráscsipetekből induljunk ki: http://progpater.blog.hu/2011/02/13/bearazzuk_a_masodik_labort http://progpater.blog.hu/2011/09/05/bearazzuk_az_elso_labort
![Page 107: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/107.jpg)
Labor – Atan-os robotfoci http://sourceforge.net/projects/atan1/
![Page 108: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/108.jpg)
Labor – Atan-os robotfoci http://sourceforge.net/projects/atan1/
![Page 109: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/109.jpg)
Labor/otthoni – Javát tanítok http://www.tankonyvtar.hu/informatika/javat-tanitok-javat-080904
![Page 110: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/110.jpg)
A Javát tanítok könyv példáiról
Források letöltése: http://www.tankonyvtar.hu/informatika/javat-tanitok-1-1-080904-1 Ha karakterkódolási problémák adódnának: #!/bin/bash
for i in $( find . -name "*.java")
do
echo $i
iconv -f ISO_8859-2 -t UTF-8 -o ${i}.konv $i
mv ${i}.konv $i
done
![Page 111: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/111.jpg)
A Javát tanítok könyv példáiról
![Page 112: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/112.jpg)
A Javát tanítok könyv bemutatása
![Page 113: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/113.jpg)
UML 1.4 jelölés
A Javát tanítok könyv példáiról
![Page 114: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/114.jpg)
Java jelölés
A Javát tanítok könyv példáiról
![Page 115: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/115.jpg)
Hol keltjük életre a labirintust? Például: Applet, Servlet, MIDlet, … ,fullscreen API:
A Javát tanítok könyv példáiról
![Page 116: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/116.jpg)
A Javát tanítok könyv példáiról
![Page 117: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/117.jpg)
A Javát tanítok könyv példáiról
![Page 118: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/118.jpg)
A Full Screen Exclusive Mode API használatáról szóló példa: Java a játékokban: egy teljes képernyős példa - Labirintus Játék http://www.tankonyvtar.hu/informatika/javat-tanitok-1-2-java-080904-1
A Javát tanítok könyv példáiról
![Page 119: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/119.jpg)
![Page 120: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/120.jpg)
Laborkártyák
A Prog1 összes kártyája él! Lásd hasonlóan a prezentációk részeként: http://nehogy.fw.hu/ vagy http://www.inf.unideb.hu/~nbatfai/p1/
![Page 121: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/121.jpg)
Laborkártyák
Magyarázd meg a helyzetet!
vs.
![Page 122: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/122.jpg)
Otthoni opcionális feladat A robotfocitika három törvénye posztban bemutatott telepítés reprodukálása: http://fersml.blog.hu/2010/12/28/a_robotfocitika_harom_torvenye +soccerwindow: http://fersml.blog.hu/2011/01/01/fersml_avatar_2_robocup_foci_agens
![Page 123: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/123.jpg)
Kötelező olvasmány
NYJ I/1-55 NYJ I/1-59
![Page 124: Prog2, Java bevezetés](https://reader034.vdocuments.mx/reader034/viewer/2022051420/627e4ffbb1458f04090fe8e5/html5/thumbnails/124.jpg)
Ajánlott olvasmány
(Nehogy már könyv)
Bátfai Norbert (2008): Nehogy már a mobilod nyomkodjon Téged! A programozás egy
szellemi sport: ismerd meg Te is az alaplépéseket! Debrecen, DEENK 2008.
(Paller Javas cikkek)
http://pallergabor.uw.hu/hu/java-app/
(Nyékyné Java könyvből mazsolázni, az első 50 oldal már kötelező)
Nyékyné Gaizler Judit [et al.], Java 2 : útikalauz programozóknak : 5.0 8. átdolg.,
bőv. kiad.
http://webpac.lib.unideb.hu/WebPac/CorvinaWeb?action=onelong&showtype=longlon
g&recnum=498662&pos=5