Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,

Slides:



Advertisements
Hasonló előadás
Osztály leszármaztatás
Advertisements

Programozási nyelvek II.
Programozás III KOLLEKCIÓK 2..
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Adatbányászati technikák (VISZM185)
Öröklődés 2..
RMI = Remote Method Invocation
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Objektum-elvű programozás (OOP)
© Kozsik Tamás JavaBeans Nagyon divatos technológia Nem tévesztendő össze az Enterprise Java Beans technológiával Programozási konvenciók gyűjteménye.
Szabó Tamás Károly G6HT12 A Ruby programozási nyelv.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
Öröklődés Polimorfizmus Csomagok Absztrakt osztályok, interfészek
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Vizuális modellezés Uml és osztálydiagram UML eszközök
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Tömbök ismétlés Osztályok Java-ban Garbage collection
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A Java programozási nyelvSoós Sándor 1/16 Java programozási nyelv 6. rész – Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
Java programozási nyelv 5. rész – Osztályok III.
C# Alapok Krizsán Zoltán.
C# tagfüggvények.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
C# tagfüggvények.
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
5. előadás Parametrikus polimorfizmus. Generikus programozás
Csomagok.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
A PHP 5 újdonságai Az OOP terén. Miről lesz szó? Osztályok kezelése – Új direktívák – Konstruktor – Destruktor Interfészek Kivételkezelés.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
Java programozási nyelv Metódusok
Java programozási nyelv Adatbekérés konzolról
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Egyenesvonalú (lineáris) adatszerkezetek
Objektum orientált programozás
Apache Ant 2. gyakorlat Alkalmazásfejlesztés /2 Gyakorlat Zalatnai Csongor.
Programozás III KOLLEKCIÓK.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 7. gyakorlat.
Ficsor Lajos Objektumok inicializálása CPP4 / 1 Objektumok inicializálása Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 4. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Konverziós operátorok
Függvénysablonok használata
Előadás másolata:

Annotációk a Java 5 nyelvben Kozsik Tamás

Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz, attribútumokhoz, konstruktorokhoz, lokális változókhoz Plusz információt hordoznak –A Java fordító számára –Speciális eszközök számára

Annotációk definiálása és használata Copyright { String value(); Tamás Kozsik")‏ public class Point { public double x, y; public Point(int x, int y){ this.x = x; this.y = y; }

Típusok Primitív típusok Referencia típusok –Osztályok Tömbök Felsorolási típusok –Interfészek Annotáció típusok

Annotáció típus - szintaxis Majdnem olyan, mint egy interface Speciális Megszorítások –Nem lehet generikus –A metódusok benne: nem lehetnek generikusok nem lehet paraméterük a visszatérési érték típusa nem lehet throws-klózuk –Nem lehet szülőinterfésze primitív típus String Class vagy példányosítása Felsorolási típus Annotáció típus Ezekből képzett tömb (1-dim)‏

Annotáció típus - szemantika Interfész Implicit módon kiterjeszti a java.lang.annotation.Annotation interfészt Lehet belőle leszármaztatni Nem lehet rekurzív a SelfRef { // fordítási hiba SelfRef value(); } Nem ütközhetnek metódusai az Object és az Annotation metódusaival (felüldefiniálás-ekviv.)‏

Annotációk elemei Az annotáció típus definíciójában bevezetett metódusok Nulla, egy vagy több elem –Nulla: marker –Egy: konvenció, hogy a neve „ value ” Alapértelmezett érték rendelhető hozzájuk

Több elem, alapértelmezett érték RequestForEnhancement { int id(); String synopsis(); String engineer() default "[unassigned]"; String date() default "[unimplemented]"; synopsis="Provide time-travel functionality" )‏ void travelThroughTime(Date dest){ … }

Marker annotáció Elhagyható zárójelpár Preliminary public class ApplePie { … }

Egy elemet tartalmazó annotáció Ha az elem neve value Vagy, ha több elem, a többinek van default Copyright { String value(); Kozsik (2006)")‏ public class Point { … }

Tömb típusú elem Endorsers { String[] value(); {"Children", "Unscrupulous dentists"})‏ public class Lollipop {... public class Lollipop {... }

Típushelyettesítő public interface Formatter {... } PrettyPrinter { Class value(); } class GorgeousFormatter implements Formatter {... public class Petunia // ford. hiba public class Begonia {... }

Beágyazott felsorolási típus Quality { enum Level { BAD, INDIFFERENT, GOOD } Level value(); public class Karma {... }

Összetett annotációk Name { String first(); String last(); } Author { Name value(); } public class Point { … }

Mire alkalmazható Csomagokhoz Típusokhoz (annotáció típusokhoz is)‏ Metódusokhoz Attribútumokhoz (enum konstansokhoz is)‏ Konstruktorokhoz Lokális változókhoz Meta-annotáció

Annotáció típusok annotálására Beépített annotáció típusok Saját magát @Target(ANNOTATION_TYPE) Target { … }

Predefinit annotációk A Java nyelvbe/fordítóba beépítettek –Target –Retention –Inherited –Override –SuppressWarnings –Deprecated A szabványos API-ban bevezetettek