környezetben Debreceni Egyetem, Informatiai Intézet T-Soft Mérnökiroda KFT
|
|
- Teréz Lakatos
- 7 évvel ezelőtt
- Látták:
Átírás
1 Komponensek együttműködése webalkalmazás környezetben Jónás Richárd Debreceni Egyetem, Informatiai Intézet T-Soft Mérnökiroda KFT Kivonat Napjainkban az élet valamennyi szereplőjének előnye származik abból, ha az interneten tud közölni és fogadni információkat, majd ezen információkat jól szervezetten képes felhasználni. Ehhez elengedhetlen egy szoftver-infrastruktúra kidolgozása, amelyet ma a web-alkalmazások valósítanak meg. Ebből fakadóan a web-alkalmazások gyors és rövid életciklusokkal rendelkező szoftverfejlesztési folyamata elengedhetetlen ahhoz, hogy időben reagáljunk a követelményekre. A web-alkalmazások ilyen fejlesztését támogatja a komponens-alapú szoftverfejlesztés, amelynek számos ága van. Egyesek a komponensek általános reprezentációjával foglalkoznak, mások a komponensek felhasználásával elért üzleti profitot tartják szem előtt, emellett léteznek a módosíthatóságra kihegyezett komponens-architektúrák, stb. Cikkemben a komponensek együttműködését szeretném bemutatni címszavakban, majd megvizsgálni, hogy hogyan lehet az együttműködésből fakadó függéseket úgy finomítani, hogy az ne menjen a módosíthatóság rovására. Továbbá példát láthatunk arra, hogy hogyan lehet szeparálni egymástól a komponens felelősségét és a rendszer funkcionalitásait, ha szükség van rá. Ezt az aspektus-orientált programozás segítségével fogom bemutatni, példákon keresztül. 1. Bevezetés Napjainkban a társadalom informatizálása révén a szoftverfejlesztés még nagyobb jelentőséggel bír, mint eddig, hiszen az élet minden területén szükség van biztonságosan működő, dokumentált, fejleszthető szoftverre. Az objektum-orientált programozás olyan szoftverfejlesztési paradigma, amely megoldást adott a nagyméretű alkalmazások kezelhetőségét illetően, de nem oldott meg számos olyan problémát, amelyek az alkalmazás funkcionalitására vonatkoznak. Az objektumok a valós világ entitásait reprezentálják, tehát az objektum-orientált programozás az entitások felelősségét emeli ki. Egy alkalmazás viszont funkcionalitások összességeként 1
2 fogható fel, és legtöbb esetben egy objektum azért rendelkezik bizonyos metódussokkal, tulajdonságokkal, mert egy funkciót ez segít megvalósítani. Az alkalmazás életciklusa során előfordul, hogy az alkalmazást új funkciókkal kell kiterjeszteni, vagy meglévő funkciókat kell módosítani. Az alkalmazásban megjelenő funkciók több objektum, komponens, modul együttműködésének eredményeképpen jönnek létre, tehát ha módosítani kell egy funkciót, akkor legrosszabb esetben az együttműködésben résztvevő összes komponenst módosítani kell. Ez természetesen megnehezíti egy alkalmazás több fejlesztő által végzett párhuzamos fejlesztését. Cikkemben szeretnék bemutatni egy technológiát, amellyel a komponensek közötti kommunikáció összefogható, annak érdekében, hogy az könnyebben módosítható legyen. Továbbá megvizsgálom, hogy hogyan lehet a kommunikációt egységesíteni, így egyszerűbbé tenni. 2. Komponensek A komponensek jól elkülöníthető kódrészletek, amelyek önállóan fejleszthetők, dokumentálhatók, üzembehelyezhetők. Cikkemben elsősorban forráskódú komponensekkel (azon belül is Java nyelvű komponensekkel) foglalkozom, de vizsgálatra kerül a nem forráskodú komponensek közötti kommunikáció egyszerűsítése is. Ahhoz, hogy megértsük cikkemben mit értek a kommunikáció alatt, nézzünk meg egy példát. Tegyük fel, hogy van egy fejlesztendő szoftverünk, amelyben számos olyan funkciót valósítunk meg, amelyek az üzembe helyezett szoftver esetében nem kell, hogy működjenek. Ilyen például a naplózás (bizonyos esetekben az üzembehelyezett rendszernél is fontos ez a funkció), az úgynevezett elő- és utófeltétel vizsgálatok metódusok végrehajtása előtt és után, stb. Világos, hogy ezek a fejlesztés során fontosak és egy teszt után, egy működő rendszer esetén nem szükségesek, csak lassítanák a szoftvert. Nem nehéz belátni, hogy a naplózással foglalkozó hívások a teljes rendszer forrását áthatnák, így elég nagy energia lenne kitörölni ezeket a hívásokat a kódból, de ha még egy programozó ezt a feladatot ellátná, akkor a következő rendszerfrissítés esetén szintén meg kell oldania ezt a problémát Aspektus-orientált programozás Az ilyen esetek megoldására fejlesztették ki az aspektus-orientált programozást ([1]). Az AOP középpontjában az aspektus áll, amelyet a rendszer egy funkciójaként, dolgaként foghatunk fel. Azért jött létre ez a paradigma, mert észrevették, hogy a rendszerben megtalálhatók olyan funkciók is, amelyek komponensektől függetlenül jelennek meg, így az öröklődési- és interfészhierarchia segítségével ezeket a problémákat nem lehet megoldani. Az AspectJ ([2]) egy olyan nyelv, amely a Java aspektus-orientált kiterjesztéseként jött létre. Az AspectJ-ben írt kód byte-kód kompatibilis a Java nyelvű osztályokkal, így egy AspectJ program futtatható a hagyományos JVM-eken is. Ez nagyban elősegíti az AspectJ nyelv terjedését, hiszen megtehetjük, hogy a rendszerünk egy részét írjuk csak át aspektus-orientált 2
3 módon, majd üzembehelyezzük, és fokozatosan átgondoljuk a kritikus részeket. A szakirodalom ez refactoring-nak nevezi ([3][4]) és olyan esetekben kell alkalmazni, ha aspektusokkal szeretnénk összefogni az ismétlődő kommunikációkat már meglévő rendszerünkben. Az AspectJ fogalomrendszere a következő elemekből áll: joinpoint: jól meghatározott kódrészletek, például metódusok, konstruktorok, tulajdonságok, osztályok, stb. pointcut: feltételeket alapján kódrészleteket választhatunk ki vele, például: egy joinpoint segítéségével kijelölt metódus hívása, tulajdonság értékének módosítása, stb. Mitöbb a pointcut-okat logikai összekötőjelekkel kombinálva, összetett feltételeket adhatunk meg, például: olyan metódusok hívása, amely neve add szóval kezdődik, de a metódus maga nem paraméternélküli, stb. advice: egy kódrészlet, amely egy pointcut esetén lefut. aspect: az előbbi három összessége, beleértve a struktúrális módosításokat is Kommunikációs minták Webalkalmazások esetén akkor használhatjuk sikerrel az AOP-t, ha megtaláljuk és kiemeljük a kommunikáció során felmerül ismétlődő mintákat. Ilyenek például a bean-ek kommunikációja a JSP lappal, illetve az adatbázissal, stb. Ezeket a problémákat bizonyos nyelvek, keretrendszerek inherens módon kezelik, de ilyen keretrendszereket használva meg kell tanulnunk egy speciális szkriptnyelvet. Új keretrendszerre áttérve egy újabb nyelvet kell megtanulnunk és így tovább. Ráadásul ezek a nyelvek nem általános célúak, így a fejlesztés során könnyen belebotlunk olyan problémába, amely megoldását nem támogatják. 3. Minták AspectJ-vel Nézzük meg hogyan lehet az előbb említett két gyakran felmerülő, sok egyforma kódot tartalmazó mintát implementálni az AspectJ segítségével Bean-JSP kommunikáció Tegyük fel, hogy a van egy bean-ünk, amely egy számla adataival foglalkozik. A bean a JSP oldalról megkapja a számla azonosítóját (invoideid), majd lekérdezi az adatbázisból a számla leíró attribútumait. Ekkor a bean a következőképpen nézhet ki: public class Bean { private String parameterinvoiceid; 3
4 public void execute(){... ResultSet r = statement.executequery("select * from" + "invoice where id = " + parameterinvoiceid + " ");... A parameterinvoiceid változó értéke az InvoiceId kérési paraméter értéke kell legyen. Ezt természetesen beleírhattuk volna a bean-be, de ha több ilyen értéket kell átadni, akkor a lényegi kód eltűnik a kommunikációs kódok között. Definiáljunk egy RequestGetter interfészt, amely jelzi, hogy egy bean rendelkezik egy kérés objektummal. interface RequestGetter { public ServletRequest getrequest(); public void setrequest(servletrequest request); A következő kód egy ParameterGetter nevű aspektust definiál, amely funkciója a következő: ha egy bean definiálja a RequestGetter interfészt, akkor bármely parameter előtaggal rendelkező attribútum értékére való hivatkozáskor, nem a tényleges értéket fogjuk megkapni, hanem a parameter utáni (esetünkben InvoiceId) névvel rendelkező kérési paraméter értékét. aspect ParameterGetter { declare parents: Bean implements RequestGetter; // (1) private ServletRequest RequestGetter._rq = null; // (2) public ServletRequest RequestGetter.getRequest(){ return _rq; public void Request.setRequest(ServletRequest r){ _rq = r; after(bean b, HttpServletRequest request): // (3) execution(public Bean.new(..)) && this(b) && 4
5 ){ cflow( execution(public void *.HttpJspBase._jspService( HttpServletRequest, HttpServletResponse) ) && args(request) b.setrequest(request); String around(requestgetter rg): // (4) get(string RequestGetter+.parameter*) && this(rg) { String attributename = thisjoinpointstaticpart.getsignature().getname(); String parametername = attributename.substring(9); return rg.getrequest().getparameter(parametername); Az (1)-gyel jelölt kód azt jelenti, hogy a Bean osztály definiálja a RequestGetter interfészt. A (2)-vel kezdődő kódrészlet egy úgynevezett típusok közötti deklaráció (inter-type declaration), amely azt mondja, hogy ha egy osztály implementálja a RequestGetter interfészt, akkor rendelkezni fog egy rq nevű attribútummal, egy getrequest és egy setrequest metódussal, amely implementációját az aspektus adja meg. Tehát az aspektus megoldást ad arra is, hogy hogyan lehet egy interfészt automatikusan implementálni 1. A (3)-mal jelzett kód egy tanács (advice), amely a Bean osztály bármely konstruktorának végrehajtódása után hívódik meg, akkor ha ez a végrehajtódás a HttpJspBase osztály (minden JSP lap őse) jspservice metódusának végrehajtása közben történik 2. A this(b) hatására a szóban forgó objektumot a b azonosítóval érhetjük el, az args(request) kifejezéssel pedig egy hívás/végrehajtás argumentumait lehet nevesíteni, így a request a paraméterben átadott HttpServletRequest értéke lesz. A tanács törzse beállítja a bean kérés objektumát. Ezzel láthattunk egy példát egy komponens autmatikus környezet-detektálására. A (4)-gyel jelzett kód egy másik tanács, amely szerint ha hivatkozás történik egy parameter előtaggal rendelkező változó értékére egy olyan osztály esetében, amelyik implementálja a RequestGetter interfészt, akkor ehelyett hajtódjon végre a következő kód. A kód környezetéről a thisjoinpointstaticpart hordoz strukturális információt, így megtudhatjuk a szóban forgó attribútum nevét. A kilencedik karaktertől a kérési paraméter nevét kaphatjuk meg, amely 1 Erre a Java nyelvben is láthatunk példát a Serializable interfész esetében, hiszen ott is van a szerializált osztály mögött beépített funkcionalitás. 2 A cflow a control flow röviditése. 5
6 értékét elkérhetjük, hiszen ismerjük a kérést (request). Ha szeretnénk, hogy a Bean ne így működjön, akkor az (1)-sel jelzett sort kell kitörölni, illetve ha szeretnénk, hogy más osztályok is így viselkedjenek, akkor ugyanitt vesszővel elválasztva, és/vagy wildcard karakterek segítségével több osztály nevét is megadhatjuk Bean-adatbázis kommunikáció Az interaktív webalkalmazások fejlesztésekor gyakran felmerül egy adatbázistábla bővítése, módosítása, vagy az abból való törlés. Ez a feladat a tábla ismeretében elég jól algoritmizálható probléma, így joggal gondolhatjuk, hogy kódgenerátorral elkészíthetők a táblákat manipuláló kódok. Elkészíthetők, de utána a generált kódok karbantartása lehetetlen (újrageneráljuk, vagy belejavítsunk a generált kódba). Hogyan segít ezen a problémán az aspektus-orientált programozás? Definiáljuk a következő interfészt: public interface DataModifier { Azon bean-ek, amelyek manipulálni szeretnék az adatbázist, jelezzék azzal, hogy implementálják a DataModifier interfészt. Ezután ha bővíteni szeretné a bean az invoice táblát, definiálja a következő üres törzsű metódust. public void add_invoice(string _invoice_id, Timestamp create_date){ Az add előtag jelzi, hogy bővíteni szeretnénk egy táblát, majd a tábla nevét tartalmazza a metódus. Formális paramétereiben pedig a tábla mezőinek a nevét kell felsorolni úgy, hogy az elsődleges kulcs neve elé egy aláhúzás jel kerüljön (a módosításnál és a törlésnél tudnunk kell mely mezők részei a kulcsnak). import java.sql.*; import org.aspectj.lang.reflect.*; public aspect Database { void around(): execution(public void DataModifier+.add_*(..)){ try { Class.forName( "org.gjt.mm.mysql.driver" ); Connection conn = DriverManager.getConnection( "jdbc:mysql:// :3306/test" ); 6
7 Object [] args = thisjoinpoint.getargs(); // (1) MethodSignature ms = (MethodSignature) thisjoinpointstaticpart.getsignature(); String methodname = ms.getname(); String tablename = methodname.substring( 4 ); // (2) String [] pnames = ms.getparameternames(); Class [] ptypes = ms.getparametertypes(); StringBuffer sql = new StringBuffer(); sql.append( "insert into " ).append( tablename ).append( " (" ); for ( int i = 0; i < pnames.length; i++ ){ // (3) sql.append( pnames[i] ); if ( i < pnames.length - 1 ) sql.append( ", " ); sql.append( ") values (" ); for ( int i = 0; i < pnames.length; i++ ){ // (4) sql.append( "?" ); if ( i < pnames.length - 1 ) sql.append( ", " ); sql.append( ")" ); // (5) PreparedStatement st = conn.preparestatement( sql.tostring() ); for ( int i = 0; i < ptypes.length; i++ ){ if ( ptypes[ i ].equals( String.class ) ) st.setstring( i + 1, ( String ) args[ i ] ); if ( ptypes[ i ].equals( Integer.TYPE ) ) st.setint( i + 1, ( ( Number ) args[ i ] ).intvalue() ); st.execute(); st.close(); conn.close(); catch ( Exception e ){ 7
8 e.printstacktrace( System.err ); A Database aspektus megvalósítja a fent vázoltakat, nézzük meg hogyan! Az around-advice jelzi, hogy a DataModifier-t implementáló osztályok add -sal kezdődő metódusainak hívásakor az eredeti kód helyett a tanács törzsét hajtsuk végre. Miután csatlakoztunk az adatbázishoz, az (1)-sel jelzett kód a metódushíváskor átadott argumentumok értékét tudja meg. Majd (2)-sel jelzett kódban a metódus szignatúrájának lekérdezése után meg tudjuk határozni a tábla nevét, hiszen az a 4. karaktertől kezdődik a metódus nevében. Ezután a metódus paramétereinek nevét és típusát tudjuk lekérdezni. Sajnos más tulajdonságot nem (final-e vagy sem), ezért kell a kulcsrész attribútumok neveit aláhúzással kezdeni. Ezt a Java 1.5 ([5]) verziójában kielégített JSR-175-ös kérés ([6]) metadata eszköze képes megoldani. Ezután az SQL utasításnak a szövegét kell összeállítani, a paraméterek nevei a táblában szereplő mezők nevei lesznek (3), majd a paraméterek értékeit előkészített SQL utasítással fogjuk behelyettesíteni (4). A paraméterek típusát ismervén tudjuk, hogy a paraméter értékét mely JDBC típusba kell konvertálni és átadni. Az (5)-sel jelzett kód szöveges és egész értékű paraméterek értékeit tudja átadni az előkészített utasításnak. Ezután végrehajthatjuk az adatmanipulációs utasítást. 4. Konklúzió A cikkben vázolt módszerrel elvégezhetjük a komponensek közötti olyan kommunikációt, amelyek ismétlődőek, opcionálisak. Ehhez természetesen fel kell fedeznünk, hogy a megoldandó probléma milyen aspektusokat tartalmaz. Ezt a legegyszerűbben use-casek, felhasználói esetek és a kollabarációs diagrammok elemzésével végezhetjük el. Ezután meg kell vizsgálni, hogy mely objektumok, komponensek vesznek részt az aspektusban, amely mint látjuk fordítási időben történik. Így az aspektus statikus lesz, de ez a legtöbb esetben nem probléma, hiszen az üzembehelyezett rendszereknél a rendszer egészét, vagy egy jól meghatározott modult frissítenek, de nem aspektusokat. Érzésem szerint az aspektus-orientált programozást sikerrel lehet alkalmazni, ha jól meghatározott eseményekre ismétlődő kódokat kell végrehajtani. Így elkerülhetjük a kódgenerálást az eseményvezért programozás megfelelő használatával. A nyelvi támogatás még nem tökéletes, hiszen az aspektusok írásakor a Java 1.5-ös verziója még nem volt elérhető, így fölöslegesen készített, metódusnélküli interfészekkel kellett minősíteni az osztályokat. Az aspektus-orientált programozás eszközeivel megoldódni látszanak olyan komponensalapú programozásban megjelenő problémák, amelyeket eddig nehézkes volt kezelni. Ilyen a komponensek környezetének detektálása, onnan információk átvétele, illetve a hiba jelzése, 8
9 ha a környezet nem megfelelő (komponens beépíthetősége). A komponens tud környezetétől függően viselkedni, hiszen a cflow segítségével megadhatjuk, hogy valamilyen hívás hatása alatt vagyunk vagy sem. A komponenseket aspektusok kötik össze, ők valósítják meg a kommunikációt, így a kommunikációval foglalkozó kódokat nagyságrendekkel könnyebben lehet változtatni mint eddig. Az aspektus-orientált programozás még nem fejlődött ki teljesen, de látszik, hogy mindenképpen egy paradigmaváltás előtt állunk. Hivatkozások [1] Aspect-Oriented Software Development Community, [2] AspectJ Project, [3] Aspect-Oriented Refactoring: Part 1 Overview and Process, Ramnivas Laddad, RefactoringPart1 [4] Aspect-Oriented Refactoring: Part 2 The Techniques of the Trade, Ramnivas Laddad, RefactoringPart2 [5] Java 2 Standart Editon, Sun Microsystems, [6] Java Specification Request: A Metadata Facility for the JavaTM Programming Language, 9
Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft.
Komponensek együttműködése web-alkalmazás környezetben Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT Komponensek a gyakorlatban A szoftverkomponenseket fejlesztő csoportoknak szüksége van olyan
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
Adatbázisok webalkalmazásokban
Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql
Interfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
é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
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
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
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
Bevezető. Servlet alapgondolatok
A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig
Java programozási nyelv 11. rész Adatbázis-programozás
Java programozási nyelv 11. rész Adatbázis-programozás 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
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
CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )
Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.
Abstract osztályok és interface-ek. 7-dik gyakorlat
Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
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
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:
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?
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
Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa
Web Technológiák Java Server Pages - JSP Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101
Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.
KIINDULÁS Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,
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:
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {
Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,
Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet
Aspektus-orientált nyelvek XML reprezentációja Kincses Róbert Debreceni Egyetem, Informatikai Intézet kincsesr@inf.unideb.hu Bevezetés OOP: helyesen alkalmazva jó minőségű szoftvert lehet vele előállítani
Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István (viczus@freemail.hu) Viczián István
Java objektumok leképzése relációs adatbázisokra -vel Viczián István (viczus@freemail.hu) Előszó E cikk olyan haladó programozóknak nyújt segítséget, kik tisztában vannak a Java nyelvvel, és többször is
Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
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
Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció
Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia
Közösség, projektek, IDE
Eclipse Közösség, projektek, IDE Eclipse egy nyílt forráskódú (open source) projekteken dolgozó közösség, céljuk egy kiterjeszthető fejlesztői platform és keretrendszer fejlesztése, amely megoldásokkal
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
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
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?
Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A
Enterprise JavaBeans 1.4 platform (EJB 2.0)
Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans
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
Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans
Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti
JavaServer Pages (JSP) (folytatás)
JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek
JAVA webes alkalmazások
JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,
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
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
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
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.
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
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben
Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.
Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens
SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC
SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC ADATBÁZISOK Adatbázis = adott formátum és rendszer szerint tárolt adatok összessége. DBMS feladatai: adatstruktúra (adatbázisséma)
Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java 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
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk
Objektumelvű programozás
Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
Java programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek 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/23 Tartalomjegyzék
A Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus
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
A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév
Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások
Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN
Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN B IT v: 2016.02.10 MAN SQL felületek Hatékony: SQL parancsok kiadására Eredmények megtekintésére Nehézkes: Nagyobb volumenű, rutintevékenységek
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát
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
ELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 Oktatóanyag 2 Az oktatás folyamán használt példák a fent látható egyszerű modell implementációi. Oktatóanyag 3 A definíciós részben definiálja a fejlesztő az egyes attribútumokat, metódusokat,
SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok
SQL jogosultság-kezelés Privilégiumok Grant és Revoke Grant Diagrammok 1 Jogosultság-kezelés Egy fájlrendszer általában jogosultságokat rendel az általa kezelt objektumokhoz. Tipikusan olvasható, írható,
III. OOP (objektumok, osztályok)
III. OOP (objektumok, osztályok) 1. Természetes emberi gondolkozás Az Objektumorientált paradigma alapelvei nagyon hasonlítanak az emberi gondolkozásra. Érdemes ezért elsőként az emberi gondolkozás elveit
A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.
Függvények A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük. Mint egy dzsinn: Hogyan is "használunk" egy dzsinnt? megszólítjuk megmondjuk,
A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus
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
Java Programozás 1. Gy: Java alapok. Ismétlés ++
Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk
Bevezetés: az SQL-be
Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak
Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
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
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
Web-fejlesztés NGM_IN002_1
Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása
Programozás módszertan p.1/46
Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI É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
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
Programozási alapismeretek 4.
Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)
Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom
Szoftver újrafelhasználás (Software reuse) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 18. Roger S. Pressman: Software Engineering, 5th e. chapter 27. 2 Szoftver újrafelhasználás Szoftver
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf.
Szerver oldali Java programozás 2007-08/II. 1. óra Elemkönyvtárak Elemkönyvtárak használata Saját elemkönyvtár készítése szenasi.sandor@nik.bmf.hu Adatbázisok elérése Témakörök Elemkönyvtárak használata
Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 12. ELŐADÁS Adatbázis-kezelés Delphiben 2 Adatmegjelenítés lekérdezés segítségével A táblákhoz hasonlóan a lekérdezések is az adatbázis
Név: Neptun kód: Pontszám:
Név: Neptun kód: Pontszám: 1. Melyek a szoftver minőségi mutatói? Fejlesztési idő, architektúra, programozási paradigma. Fejlesztőcsapat összetétele, projekt mérföldkövek, fejlesztési modell. Karbantarthatóság,
Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22
Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML
Adatbázis rendszerek II. V. előadás Előadó: Barabás Péter Dátum: 2008. 10. 16. 1 Java DataBase Connectivity Gazdanyelv: JAVA SQLJ (beágyazott SQL) Kiindulópont: SQL-CLI (X/Open) Hasonló az ODBC-hez nyelvi
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs
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
Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1
SQL 1.rész 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 SQL története, szabványok Szabvány adatbázis-kezelő nyelv: SQL SQL (angol kiejtésben
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
Java Database Connectivity (JDBC)
Java adatbázisok elérése Java Database Connectivity (JDBC) JDBC Call Level Interface (CLI): standard, ami definiálja, hogy egy program hogyan kommunikálhat egy adatbázis management rendszerrel (DBMS).
OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.
OO PDO PDO VS MYSQLi VS MYSQL ================================================================================ A PHP mysql metódusai elavultak, helyette lehet hazsnálni a MYSQLi metódusokat, amelyek szinte
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,
Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék
Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma
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:
Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Folyamatmodellezés és eszközei Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Folyamat, munkafolyamat Munkafolyamat (Workflow): azoknak a lépéseknek a sorozata,
Tájékoztató. Használható segédeszköz: -
A 12/2013. (III. 29.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja
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