CATEGORII DOCUMENTE |
Pentru cei care abia astepta sa inceapa lucrul cu Java acest capitol va fi un motiv in plus de frustrare .Structura limbajului Java a fost prezentata in partea a treia , "Anatomia limbajului Java ".Odata cu partea a patra ,"Interfata Java de programare a aplicatiilor ",incepe distractia .A venit vremea sa completam structurile invatate cu cateva lucruri interesante cu cateve lucruri interesante ,cum ar fi imagini grafice sau clicuri de mouse.In capitolul de fata si in urmatoarele patru sunt discutate in detaliu posibilitatile oferite de obiectele gata construite in Java.
Pachetele din interfata de programare a aplicatiilor (API-Aplication Programing Interface) contin clase si interfete pentru construirea aplicatiilor si miniaplicatiilor .Vom trece in revista toate pachetele disponibile in momentul elaborarii acestei carti.
Un alt element cheie prezentat in acest capitol este modalitatea de citire a documentatiei on-line pentru interfata Java API si de folosire a acesteia .Veti afla cum sa creati un apel de biblioteca cu ajutorul documentatiei si cum sa interpretati rezultatele obtinute.
Bibliotecile Java reprezinta grupuri de clase gata scrise ,puse la dispozitia programatorului. In alte limbaje de programare , aceste proceduri se numesc apeluri de servicii sistem (system calls ) sau apeluri de biblioteci librarycalls) si sunt folosite pentru accesul la data sau ora sistemului sau pentru interogarea unui dispozitiv de intrare in legatura cu tipul acestuia .Bibliotecile Java reprezinta o resursa bogata de functionalitati pentru programatori.
Bibliotecile sunt grupate in pachete -colectii de biblioteci de clase sau de alte pachete (A se vedea capitolul 7 ,"Cnstruirea obiectelor " ,pentru o prezentare detaliata a pachetelor si a bibliotecilor de clase.)
Capitolul de fata prezinta conceptul general de biblioteci Java si incearca sa va familiarizeze cu modul de folosire a acestora .puteti sa obtineti detalii despre fiecare clasa in urmatoarele patru capitole.
Imaginati-va acest aspect al limbajului Java ca pe o piramida .Pramida in sine este chiar pachetul , iar blocurile care o compun sunt biblioteci si clase.
Blocul din fruntea piramidei este clasa Object .Aceasta este superclasa tuturor claselor Java. Asadar , avem o piramida care are in varf clasa Object si dedesubt ,una langa alta , toate bibliotecile de clase care asigura functionalitatea limbajului Java.
Java este astfel proiectat incat sa asigure o mare flexibilitate si sa produca rapid rezultate .Cineva a depus deje toata munca de codificare a claselor si a interfetelor ,pentru a le asigura diverse functionalitati, asa ca de ce sa reinventati roata.?De fapt ,puteti reproiecta aplicatii in care toata munca de programare se reduce la crearea variabilelor si a logicii programului prin fluxul de control.Toate celelalte aspecte sunt rezolvate prin apeluri de biblioteci ,inclusiv desenarea ecranului ,operatiile de intrare/iesire ,manipularea datelor si inchiderea legaturilor.
Pentru garantarea posibilitatii de rulare a programelor pe diferite platforme ,se recomanda folosirea intr-o masura cat mai mare a apelurilor de biblioteci .Aceste clase si interfete au fost deja testate si ,chiar daca nu sunt complet sigure ,sunt destul de aproape de obiectiv.
Structura pachetelor API
Pachetele Java sunt formate din biblioteci de clase.Java cuprinde urmatoarele pachete :
java.aplet
java.lang
java.io
java.net
java.awt
java.awt.image
jawa.awt.peer
jawa.util
De curand ,a fost adaugata o noua interfata API; cea pentru conectivitatea bazelor de date (Java Database Connectivity API). Aceasta interfata poate fi folosita pentru conectarea bazelor de date prin intermediul interogarilor SQL. Ea nu este inclusa in setul de dezvoltare Java(JDK), dar poate fi preluata de la situl Web al firmeiSun. In acest moment ,adresa la care o puteti gasi este https://www.javasoft.com/jdbc/
Pachetele sunt importate in codul programelor cu urmatoarea comanda:
Import java.awt.*; //importa pachetul java.awt si toate pachetele acestuia
Java evalueaza instructiunile de import odata cu codul programului si importa numai bibliotecile , clasele si interfetele folosite in program . Ca urmare nu apar suprasarcini decat daca sunt importate mai multe clase decat este necesar.Totusi ,acest lucru poate crea confuzie la intretinerea ulterioara a codului. In plus ,importul mai multor pachete sau biblioteci decat este necesar incetineste ritmul de compilare .
In sectiunile urmatoare , sunt prezentate scurte descrieri ale pachetelor Java si liste cu interfete si clase din fiecare pachet. Acestea va vor ajuta sa cunoasteti mai bine continutul pachetelor. In celelalte capitole din partea a patra sunt prezentate elemente specifice fiecarui pachet, ilustrate cu numeroase exemple de folosire a claselor.
Java.lang
Pachetul java.lang este importat automat la compilare in fiecare clasa. Nu este necesar sa il importati explicit .
Pachetul java.lang contine clasele care definesc elementele fundamentale ale limbajului Java.(Acestea au fost discutate in capitolul 6. "Elementele de baza ale limbajului Java".) S-ar putea ca listele interfetelor si claselor din tabelele 9.1 si 9.2 sa vi se para cunoscute dupa ce ati aflat in capitolul 6 despre tipurile de date primitive.
Tabelul 9.1 .Interfetele din pachetul java. lang
Interfata |
Folosire |
Clonable |
Indica un obiect care poate fi copiat sau clonat |
Runnable |
Indica un obiect care poate implementa fire de executie |
Tabelul 9.2 .Clasele din pachetul java. lang
Numele clasei |
Descriere |
Boolean |
Obiect care reprezinta tipul de date primitive boolean |
Character |
Obiect care reprezinta tipul de date primitive character |
Class |
Contine reprezentarile tuturor tipurilor de clase |
ClassLoader |
Clasa abstracta care specifica modul de incarcare a claselor in timpul executiei |
Double |
Obiect care reprezinta tipul de date primitive double |
Float |
Obiect care reprezinta tipul de date primitive float |
Integer |
Obiect care reprezinta tipul de date primitive integer |
Long |
Obiect care reprezinta tipul de date primitive long |
Math |
Biblioteca de functii matematice standard |
Number |
Superclasa abstracta pentru toate tipurile de numere |
Object |
Superclasa abstracta pentru toate celelalte tipuri de clase |
Process |
Biblioteca pentru metodele de control al proceselor |
Runtime |
Biblioteca pentru metodele de acces in timpul executiei |
SecurityManager |
Clasa abstracta care contine sabloanele metodelor pentru politica de securitate |
String |
Superclasa pentru toate obiectele de tip sir de caractere |
StringBuffer |
Superclasa pentru toate obiectele de tip |
System |
Biblioteca de metode pentru interfata cu sistemul |
Thread |
Superclasa pentru toate obiectele si metodele firelor de executie |
ThreadGroup |
Superclasa pentru gruparea mai multor fire de executie |
throwable |
Superclasa pentru toate obiectele si metodele de tratare a erorilor |
java.util
java .util este biblioteca de obiecte pentru utilitarele de sistem . In acest pachet , veti gasi clasa Date ,continand un numar mare de metode , clasa Random , un generator de numere aleatoare si clasa Vector , folosita pentru crearea matricelor extensibile de obiecte. In tabelele 9.3 si 9.4 sunt prezentate listele claselor si interfetelor din pachetul java.util.
Tabelul 9.3. Interfetele din pachetul java . util
Interfata |
Folosire |
Enumeration |
Indica un obiect care poate implementa metode pentru enumerarea unui set de valori |
Observer |
Indica un obiect care poate fi urmarit cu ajutorul clasei Observer |
Tabelul 9.4 . Clasele din pachetul java.util
Numele clasei |
Descriere |
BitSet |
Biblioteca pentru operatii pe bit |
Date |
Biblioteca pentru datele calendaristice |
Dictionary |
Superclasa abstracta pentru tabelele hash |
Hashtable |
Biblioteca pentru manipularea tabelelor hash |
Observable |
Biblioteca pentru manipularea obiectelor Observer |
Properties |
Clasa pentru proprietati permanente |
Random |
Biblioteca pentru manipularea numerelor aleatoare |
Stack |
Biblioteca pentru manipularea stivei |
StringTokenizer |
Biblioteca pentru manipularea elementelor de tip sir de atomi (elemente componente ) |
Vector |
Biblioteca pentru manipularea vectorilor |
java . io
java . io este biblioteca pentru obiectele folosite in cadrul operatiilor de intrare / iesire dintre Java , pe de o parte ,si tastatura , ecran , imprimanta , fisiere de pe hard-disk sau retea ,pe de alta parte. Tot in acest pachet se afla si interfetele pentru fluxuri si fisiere. In tabelele 9.5 si 9.6 sunt prezentate listele interfetelor si claselor din pachetul java . io .
Tabelul 9.5 . Interfetele din pachetul java . io
Interfata |
Folosire |
DataInput |
Sablon pentru clasele care implementeaza metodele fluxurilor de intrare |
DataOutput |
Sablon pentru clasele care implementeaza metodele fluxurilor de iesire |
FileNameFilter |
Sablon pentru clasele care implementeaza metodele de filtrare a numelor de fisiere |
Tabelul 9.6 . Clasele din pachetul java . io
Numele clasei |
Descriere |
BufferedInputStream |
Flux de intrare care foloseste o zona tampon de memorie(buffer ) pentru accelerarea operatiilor de citire |
BufferedOutputStream |
Flux de iesire care foloseste o zona tampon de memorie(buffer ) pentru accelerarea operatiilor de scriere |
ByteArrayInputStream |
Flux de intrare citit dintr-o matrice de octeti |
ByteArrayOutputStream |
Flux de iesire scris intr-o matrice de octeti |
DataInputStream |
Flux de intrare generic pentru octeti |
DataOutputStream |
Flux de iesire generic pentru octeti |
File |
Reprezentare independenta de platforma a numelor de fisiere |
FileDescriptor |
Flux de intrare citit dintr-un descriptor de fisier |
FileInputStream |
Flux de intrare citit dintr-un fisier |
FileOutputStream |
Flux de iesire scris intr-un fisier |
FilterInputStream |
Clasa abstracta pentru fluxurile de intrare filtrate |
FilterOutputStream |
Clasa abstracta pentru fluxurile de iesire filtrate |
InputStream |
Superclasa pentru toate clasele de fluxuri de intrare |
LineNumberInputStream |
Flux de intrare care recunoaste numerele de linii |
OutputStream |
Superclasa pentru toate clasele de fluxuri de iesire |
PipedInputStream |
Flux de intrare pentru citirea datelor dintr-un alt proces |
PipedOutputStream |
Flux de iesire pentru scrierea datelor intr-un alt proces |
Printstream |
Flux de iesire pentru trimiterea datelor formatate catre un dispozitiv de iesire |
PushbackInputStream |
Flux de intrare care permite trimiterea unui singur caracter inapoi in flux |
RandomAccesStream |
Flux de intrare care permite accesul aleator la un fisier |
SeqeuenceInputStream |
Flux de intrare care permite citirea secventiala a mai multor fluxuri de intrare |
StreamTokenizer |
Metode pentru transformarea unui flux de intrare in atomi (elemente componente ) |
StringBuffer InputStream |
Flux de intrare citit dintr-o clasa StringBuffer |
java . net
Biblioteca java . net contine rutinele care interactioneaza cu protocoalele de retea. Obiectele din aceasta biblioteca pot interactiona cu protocoale precum "lacasuri"(socket) ,Telnet ,FTP,NNTPsi HTTP. In tabelele 9.7 si 9.8 sunt prezentate listele claselor si interfetelor din pachetul java . net.
Tabelul 9.7 . Interfetele din pachetul java . net
Interfata |
Folosire |
ContentHandlerFactory |
Sablon pentru clasele care implementeaza proceduri de tratare a continutului |
SocketImplFactory |
Sablon pentru clasele care implementeaza proceduri de tratare a lacasurilor |
URLStream HandlerFactory |
Sablon pentru clasele care implementeaza proceduri de tratare a adreselor URL |
Tabelul 9.8 . Clasele din pachetul java . net
Numele clasei |
Descriere |
ContentHandler |
Clasa pentru crearea obiectelor din adresele URL |
DatagramPacket |
Clasa pentru reprezentarea pachetelor de retea |
DatagramSocket |
Clasa pentru reprezentarea lacasurilor de retea |
InetAddress |
Biblioteca pentru manipularea adreselor Internet |
ServerSocket |
Biblioteca pentru implementarea lacasurilor server |
Socket |
Biblioteca pentru implementarea lacasurilor client |
SocketImpl |
Superclasa abstracta pentru toate tipurile de lacasuri |
URL |
Biblioteca pentru manipularea adreselor Internet |
URLConnection |
Clasa abstracta pentru manipularea conexiunilor URL |
URLEncoder |
Metode pentru transformarea in atomi a sirurilor de caractere ce reprezinta adrese URL |
URLStreamHandler |
Clasa abstracta pentru deschiderea unui flux la o legatura URL |
java . awt
AWT este prescurtarea de la Abstract Windowing Toolkit(Set abstract de instrumente pentru gestionarea ferestrelor. Asa cum sugereaza si numele bilbiotecile AWT cuprind partile de interfata cu utilizatorul (GUI) ale limbajului Java, inclusiv obicte precum casetele , butoanele ,chenarele si meniurile. In tabelele 9.9 si 9.10 sunt prezentate listele claselor si interfetelor din pachetul java . awt
Tabelul 9.9 . Interfetele din pachetul java . awt
Interfata |
Folosire |
LayoutManager |
Sablon pentru clasele care implementeaza containerele de aranjare in pagina |
MenuContainer |
Sablon pentru clasele care implementeaza containerele de meniu |
Tabelul 9.10 . Clasele din pachetul java . awt
Numele clasei |
Descriere |
BorderLayout |
Metode pentru manevrarea chenarelor |
Button |
Metode pentru manevrarea obiectelor de tip Button |
Canvas |
Sablon generic pentru implementarea texturilor |
CardLayout |
Metode pentru manevrarea obiectelor de tip carti de vizita de tip Rolodex |
Checkbox |
Metode pentru manevrarea obiectelor de tip Checkbox (casete de validare) |
CheckboxGroup |
Metode pentru manevrarea grpurilor de obiecte de tip Checkbox |
CheckboxMenuItem |
Metode pentru manevrarea meniurilor in stil Checkbox |
Choice |
Metode pentru manevrarea optiunilor din meniurile derulante |
Color |
Metode pentru manevrarea culorilor |
Component |
Clasa generica pentru implementarea componentelor AWT |
Container |
Clasa generica pentru implementarea containerelor AWT |
Dialog |
Metode pentru manevrarea casetelor de dialog |
Dimension |
Clasa de reprezentare pentru inaltime si latime |
Event |
Metode pentru manevrarea evenimentelor de intrare (aparute la introducerea de informatii de catre utilizator) |
FileDialog |
Metode pentru manevrarea unei casete de dialog pentru fisiere |
FlowLayout |
Metode pentru manevrarea unei secvente de obiecte de tip Window |
Font |
Metode pentru manevrarea fonturilor |
FontMetrics |
Metode pentru manevrarea caracteristicilor fonturilor |
Frame |
Metode pentru manevrarea cadrelor |
Graphics |
Superclasa abstracta pentru toate obiectele de tip Graphics |
GridBagConstraints |
Metode pentru stabilirea unor restrictii in legatura cu asezarea in pagina a obiectelor de tip GridBag |
GridBagLayout |
Metode pentru plasarea obiectelor dintr-o fereastra intr-un anumit mod |
GridLayout |
Metode pentru manevrarea containerelor de aranjare a grilei |
Image |
Clasa abstracta pentru implementarea imaginilor specifice platformelor |
Insets |
Metode pentru manevrarea continutului containerelor |
Label |
Metode pentru manevrarea etichetelor |
List |
Metode pentru manevrarea listelor |
MediaTracker |
Metode pentru urmarirea obiectelor media |
Menu |
Metode pentru manevrarea meniurilor |
MenuBar |
Metode pentru manevrarea barelor de meniuri |
MenuComponent |
Superclasa pentru toate obiectele de meniu |
MenuItem |
Metode pentru manevrarea elementelor de meniu |
Panel |
Clasa generica pentru implementarea containerelor de panouri |
Point |
Clasa de reprezentare pentru puncte |
Polygon |
Clasa de reprezentare pentru poligoane |
Rectangle |
Clasa de reprezentare pentru dreptunghiuri |
Scrollbar |
Metode pentru manevrarea barelor de derulare |
TextArea |
Metode pentru manevrarea zonelor de text |
TextComponent |
Superclasa pentru toate obiectele de tip text |
TextField |
Metode pentru manevrarea unui singur rand de text |
Toolkit |
Clasa folosita pentru asocierea pachetului AWT cu o implementare specifica |
Window |
Metode pentru manevrarea unui obiect de tip Window |
Java.awt.image
Asa , cum sugereaza si numele , java.awt.image este un subpachet al pachetului java.awt. Clasele pe care le contine trateaza imaginea de pe un ecran ca un intreg , spre deosebire de cele din pachetul java.awt ,care luau in considerare elementele grafice in mod individual . In tabelele 9.11 si 9.12 sunt prezentate listele claselor si interfetelor din pachetul java . awt.image.
Tabelul 9.11 . Interfetele din pachetul java . awt . img
Interfata |
Folosire |
ImageConsumer |
Sablon pentru receptionarea imaginilor de la un program producator |
ImageObserver |
Sablon pentru receptionarea informatiilor de actualizare a imaginilor |
ImageProducer |
Sablon pentru producerea imaginilor pentru un program consumator |
Tabelul 9.11 . Clasele din pachetul java . awt .image
Interfata |
Descriere |
ColorModel |
Clasa abstracta pentru convertirea diferitelor modele de culoare |
CropImageFilter |
Metode pentru decuparea imaginilor |
DirectColorModel |
Metode pentru transformarea modelelor de culoare |
FilteredImageSource |
Metode pentru aplicarea filtrelor la o imagine |
ImageFilter |
Metode pentru implementarea unui filtru de imagini |
IndexColorModel |
Metode pentru transformarea modelelor de culoare |
MemoryImageSource |
Metode pentru crearea imaginilor prin folosirea unei matrice de pixeli |
PixelGrabber |
Metode pentru extragerea unui subset intr-o imagine |
RGBImageFilter |
Metode pentru implementarea unui filtru RGB |
java . awt . peer
java.awt.peer este tot un subpachet al pachetului java.awt. El cuprinde numai interfete .(A se vedea tabelul 9.13). Este folosit impreuna cu java.awt pentru a asigura ferestrelor elemente grafice dependente de platforma. Interpretorul Java trateaza apelurile in functie de platforma folosita.
Tabelul 9.9 . Interfetele din pachetul java . awt .peer
Interfata |
Folosire |
ButtonPeer |
Sablon nativ pentru manipularea obiectelor de tip Button |
CanvasPeer |
Sablon nativ pentru implementarea texturilor |
CheckboxPeer |
Sablon nativ pentru manipularea obiectelor de tip Checkbox |
CheckboxMenuItemPeer |
Sablon nativ pentru manipularea meniurilor stil Checkbox (casete de validare) |
ChoicePeer |
Sablon nativ pentru manipularea optiunilor din meniurile derulante |
ComponentPeer |
Sablon nativ pentru implementarea componentelor AWT |
ContainerPeer |
Sablon nativ pentru implementarea containerelor AWT |
DialogPeer |
Sablon nativ pentru manipularea casetelor de dialog |
FileDialogPeer |
Sablon nativ pentru manipularea casetelor de dialog pentru fisiere |
FramePeer |
Sablon nativ pentru manevrarea cadrelor |
LabelPeer |
Sablon nativ pentru manipularea etichetelor |
ListPeer |
Sablon nativ pentru manipularea listelor |
MenuBarPeer |
Sablon nativ pentru manipularea barelor de meniuri |
MenuComponentPeer |
Sablon nativ pentru manipularea componentelor de meniu |
MenuPeer |
Sablon nativ pentru manipularea meniurilor |
MenuItemPeer |
Sablon nativ pentru manipularea elementelor de meniu |
PanelPeer |
Sablon nativ pentru implementarea containerelor de panouri |
ScrollbarPeer |
Sablon nativ pentru manipularea barelor de derulare |
TextAreaPeer |
Sablon nativ pentru manipularea zonelor de text |
TextComponentPeer |
Sablon nativ pentru manipularea componentelor de text |
TextFieldPeer |
Sablon nativ pentru manipularea unui singur rand de text |
WindowPeer |
Sablon nativ pentru manipularea obiectelor de tip Window(fereastra) |
Java .applet
Pachetul java . applet contine o clasa specifica miniaplicatiilor -Applet- si cateva interfete. Clasa Applet contine metodele init(), start() ,stop(), destroy() ,despre care am discutat in capitolul 7. Cu alte cuvinte ,pachetul java .applet este folosit pentru controlul structurii si miniaplicatiilor. Tabelul 9.14 contine lista interfetelor din acest pachet.
Tabelul 9.14 . Interfetele din pachetul java . applet
Interfata |
Folosire |
AppletContext |
Sablon pentru obtinerea informatiilor despre mediul unei aplicatii |
AppletStub |
Sablon folosit pentru implementarea unui program de vizualizare a miniaplicatiilor |
AudioClip |
Sablon pentru implementarea obiectelor audio |
sun.tools.debug
Bibliotecile sun.tools.debug sunt folosite impreuna cu programele executabile Java care permit depanarea , cum ar fi javac_g. Acestea contribuie la depanarea programelor Java cu ajutorul unor instrumente de lucru precum depanatorul Java (jdb). Interfata sun.tools.debug ,DebugerCallback ,este un sablon pentru implementarea comunicatiei intre o aplicatie si un depanator. Clasele din acest pachet sun prezentate in tabelul 9.15.
Tabelul 9.15 . Clasele din pachetul sun.tools.debug
Numele clasei |
Descriere |
RemoteArray |
Metode pentru depanarea obiectelor de tip array(matrice) |
RemoteBoolean |
Metode pentru depanarea obiectelor de tip boolean |
RemoteByte |
Metode pentru depanarea obiectelor de tip byte (octet) |
RemoteChar |
Metode pentru depanarea obiectelor de tip char (caracter) |
RemoteClass |
Metode pentru accesul la o clasa din cadrul depanatorului |
RemoteDebuger |
Metode pentru instantierea unui depanator |
RemoteDouble |
Metode pentru depanarea obiectelor de tip double |
RemoteField |
Metode pentru accesul la variable si metode prin intermediul unui depanator |
RemoteFloat |
Metode pentru depanarea obiectelor de tip float (numar real) |
RemoteInt |
Metode pentru depanarea obiectelor de tip int (numar intreg) |
RemoteLong |
Metode pentru depanarea obiectelor de tip long |
RemoteObject |
Metode pentru accesul la obiecte prin intermediul unui depanator |
RemoteShort |
Metode pentru depanarea obiectelor de tip short |
RemoteStackFrame |
Metode pentru accesul la cadrul de stiva al unui fir de executie suspendat |
RemoteStackVariable |
Metode pentru accesul la variable de stiva prin intermediul unui depanator |
RemoteString |
Metode pentru depanarea sirurilor de caractere |
RemoteThread |
Metode pentru depanarea firelor de executie |
RemoteThreadGroup |
Metode pentru depanarea obiectelor de tip threadgroup (grup de fire de executie) |
RemoteValue |
Metode pentru accesul la valorile variabilelor prin intermediul unui depanator |
StackFrame |
Clasa de impachetare pentru cadrul de stiva al unui fir de executie suspendat |
Folosirea interfetei Java API
Dupa ce am trecut in revista pachetele Java , haideti sa vedem ce utilitate au ele pentru programatori . Bibliotecile de clase Java constituie baza pentru majoritatea operatiilor ce trebuie efectuate intr-o aplicatie, cum ar fi : desenarea pe ecran , obtinerea informatiilor de utilizator, afisarea acestora, efectuarea corecturilor, manipularea datelor de intrare ,uneori chiar stocarea datelor si asa mai departe. Ramane in sarcina programatorului sa decida ce clase sa foloseasca pentru a-si atinge scopul.
Incepatorii in programarea in Java au uneori impresia ca este mai simplu sa scrie singuri tot codul necesar sau sa invete cateva clase de baza si sa le ignore pe celelalte , decat sa se familiarizeze cu numarul imens de clase disponibile in Java. Aceasta ar fi o severa atitudine de autoconstringere -o parte din procesul de invatare a claselor Java o reprezinta familiarizarea cu constructorii, metodele si variabilele.
Siturile firmei Sun Microsystemspun la dispozitia tuturor utilizatorilor Webun set complet de documentatie despre interfata Java API. Adresele acestor site-uri sunt:
https://java.sun.com
si
https://www.javasoft.com
Documentatia este disponibila atat sub forma unor pagini Web ce pot fi parcurse cu un browser ,cat si sub forma de fisiere PostScript, care sunt imagini ale paginilor Web de pe ecran. Documentatia API sub forma de pagini Web furnizeaza o modalitate rapida de cautare a unor informatii. Documentatia poate fi incarcata si in alte formate cum ar fi: PostScript , HTML ,PDF. In momentul scrierii acestei carti , era disponibila la adresa:
https://www.javasoft.com/java.sun.com/newdocs.html
Structura documentatiei Web referitoare la interfata API
Aceasta sectiune este un ghid sumar pentru utilizarea paginilor Web de la situl firmei Sun. Siturile se schimba mereu , asa incat nu trebuie sa va mirati daca aceste instructiuni nu mai corespund in momentul in care cititi cartea. Ca intotdeauna , diferentele pot fi mai mari sau mai mici.
Prima parte a acestei sectiuni trateaza structura documentatiei referitoare la pachete. La prima vedere aceasta poate parea confuza. Totusi este important sa stiti unde puteti cauta informatii in documentatia API.
Cea de-a doua parte a sectiunii contine instructiuni pas cu pas pentru obtinerea informatiilor din paginile Web si pentru modul de folosire a acestora. Secventele de cod din exemple ilustreaza implementarea acestor informatii.
Documentatia este structurata in pachete :
java.applet
java.lang
java.io
java.net
java.awt
java.awt.image
java.awt.peer
java.util
sun.tools.debug
Documentatia pentru pachete
Pagina pachetului contine indexul pentru interfete , indexul pentru variabile si indexul pentru clase. In plus , unele pachete au un index pentru exceptii si unul pentru erori.
Indexul pentru interfete este o lista a numelor de interfete din cadrul pachetului. Indexul pentru clase este o lista a numelor de clase continute in pachet. Indexul de exceptii este o lista a numelor de exceptii la care au acces clasele din pachet ; exceptiile propriu-zise sunt incluse in pachetul java.lang. Indexul de erori este o lista a numelor de erori la care au acces clasele din pachet.
Fig 9.1
Documentatia pentru interfete
Sectiunea pentru interfete contine informatii despre fiecare interfata din pachet. Intefetele multiple sunt impartite intr-o definitie a interfetei , un index de metode si definitii de metode. Interfetele pot avea si un index de variabile. Amintiti-va ca ele nu contin cod (a se vedea capitolul 7). Interfetele reprezinta structuri care urmeaza sa fie implementate de metode puse la dispozitie de firma Sun sau create de programator.
Definitia interfetei contine informatii de baza despre interfata. Aici apare declaratia interfetei si o scurta descriere a scopului acesteia. Declaratia poate include cuvantul cheie extends, care introduce interfetele pe care se bazeaza interfata curent definita. De asemenea , definitia interfetei include si o sectiune de declaratii, continand declaratia folosita pentru definirea interfetei si o descriere a utilizarilor ei posibile.
Indexul de metode furnizeaza o lista a metodelor continute de interfata (a se vedea figura 9.2). Aici sunt incluse numele metodelor, lista de parametri si o scurta descriere.
Definitiile de metode reprezinta o descriere mai detaliata a fiecarei metode din interfata. Ele includ numele metodei si declaratia metodei in interfata. Aceasta declaratie va fi folosita in implementarea interfetei.
Documentatia interfetei contine si un index de variabile. Acesta cuprinde o lista a variabilelor definite in interfata , precum si o scurta definitie a fiecareia dintre ele (a se vedea interfata java.awt.image.ImageConsumer, care foloseste mai multe variabile).
Fig 9.2
Sectiunea variabilelor va ofera mai multe informatii despre variabilele definite in interfata. Figura 9.3 este un exemplu din interfata java.awt.imge.ImageConsumer.
Fig 9.3
Documentatia pentru clase
Sectiunea claselor are informatii de referinta pentru fiecare clasa din pachet. Daca pachetul contine mai multe clase , fiecare dintre ele este impartita in sectiuni pentru mostenire , structura , definitie: index de variabile , index de constructori ,index de metode , variabile, constructori si metode.(Unele dintre aceste sectiuni pot lipsi , daca nu sunt folosite de clasa respectiva.)
Structura de mosteniri a clasei apare in partea de sus a paginii. Ea reprezinta o aplicatie grafica si de tip text a lantului de mosteniri pentru clasa respectiva. Puteti vedea un exemplu in figura 9.4.
Figura 9.4
Prezentarea grafica a structurii de mosteniri arata superclasa fiecarei clase , pana la elementul din varful ierarhiei. Dedesubt , se afla o sectiune care contine o scurta definitie a clasei si, eventual, alte informatii ,sub forma de referinte incrucisate(cross-reference). Iata cum arata o astfel de definitie:
public class Button
extends Component.
Aclass that produces a labeled button component.
Aceasta este o informatie elementara care arata cum este definita clasa si prezinta scopul acesteia. Declaratia contine cuvantul cheie extends ,urmat de clasele pe care se bazeaza clasa curenta.
Indexul de variabile este o lista a variabilelor din clasa respectiva. De exemplu, in clasa java.awt.image.ColorModel , veti gasi urmatorul index de variabile:
Variable Index
Pixel bits
Indexul de constructori este o lista a constructorilor clasei. El contine o scurta descriere a fiecarui constructor , ca in exemplul urmator,preluat din clasa java.awt.Button:
Button ()
Constructs a Button with no label.
Button (string)
Constructs a Button with string label.
Amintiti-va ca , de fapt , constructorii sunt folositi pentru crearea de noi obiecte.
Indexul de metode este o lista a metodelor din clasa respectiva. El contine o scurta descriere a fiecarei metode , ca in exemplul urmator , preluat din clasa java.awt.Button:
addNotify ()
Creates the peer of a button.
getLabel ()
Gets the label of a button.
paramString ()
Returns the parameter String of this button.
setLabel(String)
Sets the button with the specified label.
Sectiunea variabilelor contine informatii mai detaliate despre variabilele declarate in clasa respectiva. Fragmentul de cod care urmeaza este preluat din clasa java.awt.image.ColorModel:
Variables
pixel_bits
protected int pixel_bits
pixel_bits este o variabila de tip int, adica un tip de date primitiv , are nivelul de securitate protected si se numeste pixel_bits. Ca urmare , de fiecare data cand aceasta clasa este importata intr-un program Java , va fi disponibila o variabila cu numele pixel_bits.
Sectiunea constructorilor este o lista a constructorilor di biblioteca de clase. O astfel de lista o puteti vedea in secventa urmatoare de cod , preluata di clasa java.awt.Button:
Button
public Button ()
Constructs a button with no label.
Button
public Button (String label)
Constructs a button with a string label.
Parameter :
label - the button label.
Sectiunea definitiilor de metode contine lista tuturor metodelor clasei , precum si informatii detaliate despre folosirea acestora. Lista este ordonata alfabetic si include sintaxa declaratiei fiecarei metode. In aceasta sectiune, gasiti definitii detaliate ale metodelor , informatii despre lista de parametrii , lista redefinirilor, precum si referinte la metodele inrudite("See Also"). Metodele pot avea toate aceste elemente sau doar o parte adintre ele , in functie de aplicabilitate. In exemplul de mai jos, este prezentata metoda addNotify() din clasa java.awt.Button:
addNotify
public syncronized void addNotify()
Creates the peer of a button. This peer allows us to change the look of a button without changing its functionality.
Overrides:
addNotify in class Component
Definitia de mai sus contine informatii despre redefinirile metodei. In continuare , este prezentata metoda getLabel() din clasa java.awt.Button:
getLabel
public String getLabel ()
Gets the label of a button.
See also:
setLabel
Aceasta definitie contine informatii despre alte metode ale clasei (in cazul de fata , setLabel() ) , ca referinte incrucisate. Definitia metodei setLabel() include si informatii despre parametrii:
setLabel()
public void setLabel (StringLabel)
Sets the button with the specified label.
Parameters :
Label - the label to set the button with
See also:
getLabel
Documentatia pentru exceptii
Indexul de exceptii este o lista a exceptiilor folosite in pachet. In general , acestea fac parte din pachetul java.lang, care este inclus automat in orice pachet Java.
Definitia exceptiilorprezinta securitatea de acces , declaratia exacta a exceptiilor, precum si alte informatii , cum ar fi referintele incrucisate. Exemplul urmator este preluat din AWTException , apelata in pachetul java.awt.
AWTException
public class AWTException
extends Exception
Signals that an Abstract Window Toolkit exceptio has occurred.
Exceptiile fac partew din pachetul java.lang si sunt apelate explicit sub forma java.lang.Exception.
Construirea codului pe baza informatiilor din documentatie
Sectiunea precedenta v-a prezentat o imagine generala a documentatiei JavaAPI si a semnificatiei partilor sale componente. Totul este bine si frumos dar problema este ce facem cu informatiile obtinute. Aceasta ilustreaza modul de construire a codului pe baza informatiei din documentatie.
Sa presupunem ca vreti o informatie in legatura cu metoda necesara pentru distrugerea unei miniaplicatii care a fost folosita.
Gasiti documentatia java.API la adresa https://www.javasoft.com. Aici se afla pagina gazda a firmei Sun, dedicata limbajului Java. In figura 9.5 puteti vedea aceasta pagina asa cum arata ea in momentul scrierii cartii. Executati click pe pictograma API documentation.
Dupa aceea executati click pe pictograma Documentation si apoi pe pictograma Documentation for the n.n Release.
Figura 9.5
In pagina Package information , executati click pe java.applet. Acesta este locul potrivit pentru a cauta metodele care controleaya miniaplicatiile. In pagina Class information , executati click pe Applet. Sunt afisate informatii despre clasa . in figura 9.6 puteti vedea aceasta pagina.
Figura 9.6
In sectiunea Method Index ,executati click pe destroy. Va fi afisata pagina de referinta pentru metoda destroy.
Ea contine urmatoarele informatii :
destroy
public void destroy ()
Cleans up whatever resources are being held. If the applet is active it is stoped.
See also:
init , start , stop.
Acestea sunt toate informatiile de care aveti nevoie pentru scrierea codului. Secventa de cod care urmeaza creeaza si distruge instanta unei miniaplicatii:
import java.applet.*; //importa biblioteca java . applet
public class MyApplet extends Applet
}
Informatiile returnate de metoda getAppletInfo ( ) sunt stocate in variabila owner. Ele pot fi acum afisate si manevrate in diferite moduri.
Exemplul urmator transmite informatiile metodei resize ( ) ,care aprtine tot clasei java.applet.Applet. In documentatia on-line , veti gasi urmatoarele informatii:
Resize
Public void resize (int width , int height )
Request that the applet be resized.
Overrides :
Resize in class Component
Metoda resize ( ) este de tip void , ceea ce inseamna ca nu returneaza nici un fel de informatii. Ea trebuie sa primeasca parametrii width si height (latimea si inaltime) pentru a da rezultate. Iata un exemplu de folosire a metodei:
String owner;
Int howTall = 3 , howwide=7;
AnApplet.resize (howtall, howwide);
Owner = anapplet.GetAppletInfo ( );
System.out.println("informatiile despre miniaplicatie sunt"+owner)
Rezumat
Acest capitol prezinta pachetele din interfata Java.api si modul de obtinere a informatiilor din paginile web ale firmei Sun. Din momentul in care stiti unde sa cautati informatiile de care aveti nevoie si cum sa le folositi, vi se deschid multe posibilitati in Java. Urmatoarele patru capitole trateaza in detaliu aceste pachete si prezinta mai multe exemple de folosire a interfetei Java.API.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1267
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved