Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Bibliotecile de clase java.lang si java.applet

java



+ Font mai mare | - Font mai mic



Bibliotecile de clase java.lang si java.applet

Clasa java.applet.Applet



Clasa Applet este folosita pentru crearea, executarea si oprirea executiei mini-

aplicatiilor.Ea este o parte a structurii care permite rularea acestora, furnizand

metode specifice.

Cea mai mare parte a codului unei miniaplicatii este similara cu codul unei apli- catii. Atat aplicatiile, cat si miniaplicatiile folosesc clasele java.lang pentru o-

peratiile aritmetice si manipularea sirurilor de caractere, de exemplu.Totusi,une-

le metode sunt specifice miniaplicatiilor, necesitand prezenta unui browser care limbajul Java. De exemplu, una dintre aceste metode este folosita pentru gasirea si redarea unei secvente audio din retea. Toate metodele clasei Applet vor fi descrise in sectiunile urmatoare.

Mai multe informatii despre aceste metode pot fi obtinute din documentatia API on-line. Asigurati-va de actualitatea lor, deoarece este un produs relativ nou, iar metodele si clasele componente mai suferainca modificari.

destroy( )

Metoda destroy( ) colaboreaza cu interpretorul Java in vederea avertizarii sis- temului de colectare a gunoiului despre necesitatea eliberarii memoriei ocupate

de resursele nefolosite.

getAppletContext( )

Metoda getAppletContext( ) returneaza mediul in care este rulata miniaplicatia.

De obicei, acesta este numele browserului sau al programului de vizualizare a

miniaplicatiilor. Listingul 10.1 prezinta un exemplu de folosire a metodei

Applet.getAppletContext( ).

      Listingul 10.1. Metoda Applet.getAppletContext( ).

getAppletInfo( )

Metoda getAppletInfo( ) returneaza un sir de caractere stabilitite de programa-

tor. Ea este apelata atunci cand programul de vizualizare solicita informatii des- pre miniaplicatie. Se recomanda redefinirea informatiilor returnate in mod pre-

stabilit, deoarece acestea au valoarea null. Listingul 10.2 prezinta un exemplu de

redefinire a metodei getAppletInfo( ) din clasa java.applet.Applet.

      Listingul 10.2. Redefinirea metodei getAppletInfo( ) din clasa java.applet.Applet

getAudioClip( URL ) si getAudioClip( URL, String )

Metodele getAudioClip( URL ) si getAudioClip( URL, String ) gasesc si redau

un fisier audio. Listingul 10.3 prezinta un exemplu de folosire a acestor metode.

      Listingul 10.3. Obtinerea si redarea unor secvente audio din Internet

getCodeBase( )

Metoda getCodeBase obtine adresa URL de baza - adica returneaza calea de acces la directorul din care a fost lansata miniaplicatia. Codul prezentat in lis- tingul 10.4 foloseste metoda Applet.getCodeBase( ) pentru returnarea directoru-

lui (CodeBase) din care a fost miniaplicatia.

      Listingul 10.4. Folosirea metodei Applet.getCodeBase( ).

getDocumentBase( )

Metoda getDocumentBase( ) obtine adresa URL a documentului. Fragmentul de

Cod din listingul 10.5 foloseste metoda Applet.getDocumentBase( ) pentru a a-

Fisa pe ecran adresa documentului corespunzator miniaplicatiei.

      Listingul 10.5. Folosirea metodei Applet.getDocumentBase( ) pentru afisarea documentului de baza

 

 

getImage( URL ) si getImage( URL, String )

Metoda getImage( ) obtine din retea o imagine precizata printr-o adresa URL. Listingul 10.6 ilustreaza folosirea metodei java.applet.Applet.getImage( ).

      Listingul 10.6. Folosirea metodei java.applet.Applet.getImage( ).

 

getParameter( String ) si getParameterInfo( )

Metoda getParameter( ) obtine un parametru sau o matrice de siruri de caracte-

re care descriu miniaplicatia. Aceasta informatie ar trebui sa fie redefinita, pen-

tru ca alte miniaplicatii sa aiba acces la informatii specifice minialicatiei respec-

tive. Listingul 10.7 ilustreaza folosirea metodei getParameterInfo( ) din clasa

java.applet.Applet.

      Listingul 10.7. Folosirea metodei getParameterInfo( ) din clasa java.applet.Applet

Observatie:Pentru a putea asculta un fisier de sunet, trebuie sa specificati o va-

loare valida pentru parametrul URL. Transmiterea parametrilor catre miniaplica-

tii este explicata in capitolul 15, "Crearea unor prezentari Web imbunatatite cu

miniaplicatii Java".

init( )

Metoda init( ) initializeaza o miniaplicatie. Ea este descrisa in detaliu in capitolul

"Construirea obiectelor" si ilustrata in multe dintre exemplele din acest capitol. In

mod normal, metoda trebuia redefinita in cod, pentru a permite specificarea moda-

litatii precise de initializare a miniaplicatiei.

Play( URL ) si play( URL, String )

Metoda play( ) reda o secventa audio obtinuta cu metoda getAudioClip( ). A se ve-

dea listingul 10.3 pentru un exemplu de folosire a acestei metode.

resize( int, int ) si resize( Dimension )

Metoda resize( ) redimensioneaza o miniaplicatie. Dimensiunile ferestrei sunt date

In pixeli. Listingul 10.8 contine un exemplu de folosire a acestei metodei.

      Listingul 10.8. Folosirea metodei resize( ).

 

setStub( AppletStub )

Metoda setStub( ) stabileste fisierul primar (stub) al miniaplicatiei. In general, a-

ceasta functie este executata automat de sistem, nefiind nevoie sa o apelati expli-

cit in cod.

showStatus( String )

Metoda showStatus( ) afiseaza un mesaj de stare in mediul de executie al minia-

plicatiei. De exemplu, in Netscape, mesajul este afisat in zona de stare din partea

de jos a ferestrei browserului. A se vedea listingul 10.3, pentru un exemplu de fo-

losire a metodei showStatus( ).

start( ) si stop ( )

Metoda start( ) lanseaza in executie o miniaplicatie, iar metoda stop( ) o opreste.

(Aceste metode au fost prezentate in detaliu in capitolul 7.) Documentatia on-line

referitoare la metodele start( ), stop( ) si destroy( ) este inexacta. In cadrul ei, se

precizeaza ca nu este necesara apelarea explicita a acestor metode in cod. Noi am

obtinut rezultatele anticipate, exact cu programele in care apelarea metodelor s-a

facut explicit. A se vedea listingurile din acest capitol, pentru mai multe exemple

de folosire a metodelor start( ) si stop( ).

isActive( )

Metoda isActive( ) returneaza valoarea true daca miniaplicatia este activa. Starea

metodei devine true imediat dupa executarea metodei start( ). A se vedea listingul

10.9,pentru un exemplu de folosire a metodei isActive( ).

      Listingul 10.9. isActive afiseaza o valoare de tip boolean ce informeaza despre starea miniaplicatiei

 

 

 

 

 

 

Pachetul java.lang si clasele sale

Pachetul java.lang este atat de important incat fara el nimic nu este posibil in Ja-

va. Din acest motiv, este importat automat in toate aplicatiile si miniaplicatiile, in timpul compilarii. Nu este nevoie sa il importati explicit. Sectiunile urmatoare

cuprind informatii despre toate clasele de pe primul nivel, precum si o scurta de-

scriere a acestora. Mai multe detalii despre clase sunt disponibile in cadrul docu-

mentatiei on-line.

Boolean

Clasele utilitare Java lucreaza cu obiecte, numai daca acestea sunt folosite ca ar-

gumente. Dar in Java, variabele de tip nu sunt obiecte. Clasa Boolean va pune la

dispozitie un format pentru "reprezentarea" valorilor de tip boolean, astfel incat acestea sa fie acceptate de clasele utilitare Java. Produsul se numeste obiect de

reprezentare ( wrapper ).

Iata un exemplu de metoda care converteste un sir de caractere la o valoare de tip boolean:

Boolean myBool = Boolean.value( * True * ) ;

In instructiunea de mai sus, este declarata o variabila de tip Boolean, careia i se atribuie valoarea reprezentata de sirul de caractere "True". Remarcati doua lucruri

in legatura cu aceasta instructiune: in primul rand, variabila myBool este declara-

ta de tip Boolean, nu de tip boolean; in al doilea rand, clasa Boolean este apelata

direct in partea dreapta a operatorului de atribuire. Acest lucru se poate face atunci

cand este necesara o metoda, fara declararea unui obiect corespunzator in codul

programului.

Iata o metoda care operatia inversa: converteste o valoare de tip boolean la un sir de caractere:

System.out.println ( " myBool = " + myBool.toString( ) ) ;

Boolean este o clasa simpla, cu un set limitat de metode. Aceate sunt insacel mai frecvent folosite de catre programatori.

Character

Clasa Character este un obiect de impachetare pentru caractere, asa cum clasa

Boolean este un obiect de impachetare pentru valorile booleene. Pentru aceasta

clasa sunt disponibile mai multe metode decat pentru clasa Boolean.

Iata un exemplu de metoda folosita pentru convertirea caracterelor la numere in-

tregi, intr-o anumita baza:

myInt = Character.digit( 'b' , 16 ) ;

Deoarece b este valoare hexazecimala pentru numarul 11, in exemplul anterior, variabilei myInt ii este atribuita valoarea 11.

Iata alte exemple de metode din clasa Character:

myString = myChar.toString( ) ; //converteste myChar in String

if ( Character.isLowerCase( myChar ) ) //testeaza daca myChar este o

//litera mica

myChar = Character.toUpperCase( myChar ) ; //converteste in majuscula

if ( Character.isUpperCase( myChar ) ) //testeaza daca myChar este o

//majuscula

my = Character.toLowerCase( myChar ); //converteste in litera mica

if ( Character.isSpace ( myCharArray [ i ] ) ) //testeaza daca myChar este spatiu

i ++ //trece la urmatorul caracter

Class

Clasa Class contine subclase care returneaza informatii de despre alta clase. Fieca-

rei instanta de clasa ii este asociat automat descriptorul Class.

Iata cateva exemple de metode pentru determinarea numelor si functiilor unor

clase:

System.out.println ( " Numele clasei = " + myClass.getName( ) ) ; //returneaza

//numele clasei precedat de " class " sau de " interface "

System.out.println ( " Numele / tipul clasei = " + myClass.toString ( ) ) ;

//obtine superclasa clasei curente

mySuperClass = myClass.getSuperClass ( ) ;

//testeaza daca clasa este o interfata

if (myClass.isInterface ( ) == true )

System.out.println ( "Acest obiect este o interfata " ) ;

else

System.out.println ( " Acest obiect este o clasa " ) ;

//returneaza toate interfetele asociate acestei clase

myClassArray = myClass.getInterface ( ) ;

ClassLoader

Clasa ClassLoader redefineste structura Java prestabilita la incarcarea claselor. Optiunea prestabilitata este definita de variabila de mediu CLASSPATH si este dependenta de platforma. ClassLoader cere ca fisierele si clasele sa fie incarcate

de la distanta ( de exemplu, din retea ). Ea contine metode pentru interpretarea

claselor externe create cu metoda defineClass ( ), astfel incat acestea sa fie incar-

cate ca si clasele Java obisnuite. classLoader este o clasa abstracta, care nu este

apelata daca se respecta mecanismul prestabilit. Este folosita in special in inter-

pretoarele si depanoaterele Java.

Compiler

Java foloseste clasa Compiler in timpul compilarii programelor. Aceasta include

urmatoarele metode:

command ( Object )

compiledClass ( Class )

compileClass ( String )

disable ( )

enable ( )

Compilatorul Java foloseste aceste metode la compilarea unui program.

Number, Float, Integer si Long

Number este o superclasa abstracta pentru toate clasele de numere. Acestea sunt:

Double, Float, Integer si Long. Clasa Number contine metodele sablon pentru convertirea unui numar arbitrar intr-o a claselor Double, Float, Integer si Long.

Toate clasele numerice primitive se bazeaza pe clas Number.

Double, Float, Integer si Long sunt obiecte de reprezentare, folosite pentru a face ca tipurile de date respective sa fie acceptate de operatiile care se aplica obiecte- lor. Toate aceste tipuri de date contin metodele elementare pentru convertirea ti-

Purilor primitive in si din aceste clase. De asemenea, contin metode pentru con-

versiile intre diferitele tipuri de date numerice, precum si intre acestea si siruri-

le de caractere ( String ). Tipul String este util pentru acceptarea intrarilor de tip

text pentru numere si pentru convertirea sirurilor de caractere in numere, in vederea prelucrarii.

Iata cateva exemple de operatii disponibile pentru aceste tipuri de date:

public class Mymain ( )

}

Multe dintre clasele asociate acestor clase par inutile. In definitiv, de ce ar fi necesara o metoda pentru convertirea unui numar intreg intr-un sir de caractere,

din moment ce aceasta operatie se realizeaza automat prin folosirea operatorului

+ si a sirurilor de caractere? Motivul este faptul ca s-ar putea sa fie necesara tra-

tarea numarului intreg ca obiect si folosirea unei metode asociate obiectului. Da-

ca este necesara o clasa generica pentru afisarea valorilor unui obiect intr-un flux,

este mai simplu sa transmiteti obiectul tututor subclaselor clasei respective, sa faceti conversia la un sir de caractere , apoi sa faceti afisarea prin flux. Conver-

tind un tip de date primitive intr-un obiect, puteti sa-l ca pe orice alt obiect, in loc sa il considerati un caz special.

Math

Clasa utilitara Math contine biblioteca matematica Java standard, care cuprinde diverse functii matematice, cum ar fi valori absolute, puteri, radicali si functii tri-

gonometrice. Toate metodele din aceasta clasa sunt declarate statice, ceea ce in-

seamna ca nu pot fi modificate sau instantate in subclase. Unele aspecte ale aces-

tei clase, precum depasirile de domeniu sau valorile nedefinite, sunt dependente

de platforma.

Iata un exemplu de folosire a functiilor pow si sqrt pentru crearea unei metode care calculeaza distanta dintre doua puncte:

static double calcDist ( double x1, double y1, double x2, double y2 )

In afara functiilor matematice standard, exista proceduri pentru selectarea unei pe baza unei limite numerice. Pentru aceasta, se folosesc rutinele min/ max si floor/ ceil. Rutinele min si max furnizeaza o metoda rapida de stabilire a valorii mai mici,

respectiv mai mari, dintre doua numere. Cele doua fragmente de cod care urmeaza

fac acelasi lucru - atribuie variabilei x valoarea cea mai mare dintre a si b - dar cel de- al doilea fragment este, evident, mai complex.

If ( a > b )

else

x = Math.max ( a, b ) //atribuie variabilei x valoarea cea mai mare dintre a si b

Si metodele floor ( ) si ceil ( ) au avatajul de a face codul mai compact. Ele retur-

neaza cea mai apropiata valoarea intreaga mai mica, rspectiv mai mare, decat o va-

loare data. Aceste metode sunt utile inlucrul cu axele de coordonate, de exemplu

pentru afisarea pe ecran, unde se folosesc in general numere intregi.

Folosirea metodelor floor ( ) si ceil ( ) permite un conrol eficient al manevrarii nu-

merelor fractionare. De exemplu, daca se face un calcul pentru desenarea unui poli-

gon, este important ca fiecare dintre liniile care formeaza poligonul sa se termine exact in punctul in care incepe linia urmatoare. Daca se foloseste o alta metoda, cum ar fi rotunjirea sau convertirea la un numar intreg, coordonatele capetelor liniilor s- ar putea sa difere, chiar si cu un singur pixel, ceea ce face ca figura geo-

metrica sa nu se inchida.

Iata un exemplu de folosire a metodei floor ( ) :

void clipToRectangle ( float x1, y1, int basex )

O alta functie din biblioteca java.lang.Math care merita sa fie amintita este random ( ).

Aceasta metoda genereaza numerer aleatoare, folosite in diferite aplicatii, de la mecanica cuantica la jocurile electronice. Functia random ( ) returneaza un numar in

virgula mobila cu precizie dubla, cuprins intre 0 si 1. Prin folosirea acestei valori ca

multiplicator, poate fi geneat un numar aleator, cuprins intre oricare doua limite spe-

cificate. Iata un exemplu:

public static int getRandomInt ( imt lowerLimit, imt upperLimit )

Acest fragment de cod ar putea fi rescris intr-o singura linie, dar am ales aceasta varianta pentru a evidentia modul de generare a numarului aleator.

In legatura cu functiile de biblioteca pentru generarea numerelor aleatoare, se poate

Pune intotdeauna intrebarea: "Cat de aleatoare sunt numerele generate? " Multe gene-

ratoare de numere nu produc numere cu adevarat aleatoare. Asadar, cat de corect este

generatorul de numere aleatoare din Java? Nu prea corect, asa cum, vedea in continua-

re.

Vom examina acum unmic program care testeaza functia random ( ). Generatorul de numere aleatoare este specificat prin apelarea sa repetata pentru generarea unor nume-

re aleatoare cuprinse intre 0 si 99. Numarul de aparitii ale fiecarui numar din interva-

lul dat este stocat intr- o matrice. Apoi, programul afiseaza de cate ori a aparut fiecare

numar. Daca random ( ) genereaza numere cu adevarat aleatoare, pentru un numar su-

ficient de mare de apeluri ale functiei random ( ), fiecare numar ar trebui sa apara de aproximativ acelasi numar de ori. Programul permite specificarea numarului de iteratii

din linia de comanda:

import java.util.Random;

public class MyMain

}

for ( i = 0 ; i< cnt.intValue ( ) ; i ++ )

}

}

Acest program de testare a generatorului de numere aleatoare Java arata ca numerele generate de functia random ( ) nu sunt perfect aleatoare. Chiar introducand in linia de

comanda un numar de 10. 000 000 iteratii, obtinem rezultate care arata inconsecventa

programului. Aceasta inseamna ca functia random ( ), desi foarte utila pentru jocuri

sau alte aplicatii minore, nu este destul de sigura pentru aplicatii in care se pune pro-

blema securitatii, cum ar fi criptarea unor informatii esentiale.

Object

Object este clasa din care sunt derivate toate celelalate obiecte Java. Ea permite folosi-

rea unui set elementar de metode, pe care subclasele ar trebui sa le personalizeze. A-

cestea sunt implementate in clasa Object ca functii propriu - zise, nu ca metode ab-

stracte. Subclasele le mostenesc, ceea ce inseamna ca metodele pot fi apelate fara sa

cauzeze aparitia unor exceptii in timpul executiei. Majoritatea acestor metode pot fi

redefinite in orice obiect declarat de programator. Ele include metode pentru compara-

re, dulicare ( copiere ) si colectarea gunoiului ( recuperarea memoriei nefolosite ).

Pentru a clarifica modul de lucru al acestor metode, vom prezenta un exemplu bazat pe urmatoarea clasa:

Public class MyObiect

Aceasta clasa nu contine decat doua numere intregi, x si y. Deoarece toate clasele sunt

subclase ale clasei Object, metodele acesteia sunt mostenite si de clasa declarata mai sus. Dat fiind faptul ca metodele pentru compararea obiectelor nu functioneaza con-

form asteptarilor, ele ar trebui redefinite, ca in exemplul urmator.

Vom examina mai intai folosita pentru compararea a doua obiecte, numita equals ( ).

Ea verifica daca valorile din doua instante diferite ale aceluiasi obiect sunt egale. Me-

toda inclusa in clasa Obiect verifica doar daca doua obiecte sunt, de fapt, aceeasi in-

stanta. Orice implentare a unei clase ar trebui sa includa o metoda care sa compare doua instante diferite, pentru a verifica daca acestea sunt egale. Exemplul urmator im-

plemteaza o metoda equals ( ) pentru clasa MyObiect:

Public boolean equals ( Object obj )

Aceasta metoda returneaza rezultatul unei serii de instructiuni care verifica diferite

parti ale unui obiect, pentru a verifica daca acestea sunt egale. Prima instructiune verifica daca obiectul transmis ca parametru nu are valoarea null; a doua instructiu-

ne verifica daca variabilele continute de obiectul MyObject au valori egale. In cazul

in care toate instructiunile sunt validate, cele doua obiecte sunt considerate egale si

este returnata valoarea true. Daca una dintre instructiunile de validare esueaza, este

returnata valoarea false.

Urmatoarea metoda de baza se numeste clone ( ). Scopul ei este sa permita crearea

unei noi instante a unui obiect, prin copierea instantei originale. Metoda implemen-

tata in mod prestabilit in clasa Object nu are nici un efect. Exemplul urmator imple-

menteaza o metoda clone ( ) pentru clasa MyObject:

public synchronized Object clone

Aceasta metoda creeaza o noua a clasei MyObiect si atribuie variabilelor x si y din

Instanta nou creata valorile x si y originale. Remarcati faptul ca declaratia metodei

trebuie sa corespunda declaratiei originale a metodei redefinite din clasa MyObject;

ca urmare, metoda clone ( ) returneaza un obiect de tip Object, nu de tip MyObject.

Aceasta metoda trebuie sa fie sincronizata, astfel incat valorile variabilelor x si y sa

nu se modifice in timpul apelarii metodei.

Urmatoare metoda pe care o examinam se numeste toString ( ). Aceasta va pune la dispozitie o modalitate de reprezentare a unui obiect sub forma unui sir de caractere.

Metoda toString ( ) este apelata automat atunci cand obiectul este folosit intr- un sir

de caractere impreuna cu operatorul + ( pentru tiparire ). Implementarea ei este in to-

talitate la latitudinea programatorului. Pentru obiectele simple, metodea s-ar putea rezuma la returnarea unui sir de caractere reprezentand valoarea unor variabile. Pentru obiectele mai complexe, ea ar putea afisa alte siruri de caractere sau doar un subset al datelor disponibile. Ca si metoda clone ( ), metoda toString implementata in mod prestabilit in clasa Object nu are nici un efect si trebuie redefinita. Iata un

exemplu de implentare a metodei toString ( ) pentru MyObject:

public final synchronized String toString ( )

Aceasta metoda nu face decat sa returneze valorile variabilelor x si y intre paranteze

patrate.

Ultima metoda despre care vom discuta se numeste finalize ( ). Ea este apelata de sistemul de colectare a gunoiului ( eliberarea memoriei nefolosite ) chiar inainte de

eliberare obiectului respectiv. Aceasta metoda ar trebui sa contina toate operatiile de

curatenie pe care urmeaza sa le procese. Nu toate obiectele necesita astfel de operatii

asa incat implementarea acestei metode nu este obligatorie.

Metoda finalize ( ) implementata in mod prestabilit in clasa Object nu are nici un efect, asa incat totul va merge bine daca nu sunt necesare operatii speciale. Clasa fo-

losita ca exemplu pana in acest moment nuare nevoie de o metoda finalize ( ), dar

Iata un posibil exemplu:

public void finalize ( )

Aceasta metoda nu face decat sa atribuie variabilelor x si y valoarea -1.

Process, Runtime si System

Clasa Process contine metode pentru controlul si manipularea subproceselor. Ea este o clasa abstracta, folosita a obtine intrarile si iesirile standard ale unui subproces, a

suprima ( kill ) un subproces, a astepta terminarea unui subproces sau a obtine va-

loarea finala de iesire a unui subproces.

Clasa Runtime este folosita de interpretorul Java intimpul executiei unei aplicatii. Ea

contine clasele si metodele necesare pentru obtinerea informatiilor despre sistem in

timpul executiei. O astfel de metoda este totalMemory, care returneaza numarul de octeti din memoria sistemului. De asemenea, clasa Runtime contine metode pentru a-

plicatia aflata in executie. Una dintre acestea este gc ( ), care ruleaza programul de colectare a gunoiului, dar , cu exceptia unor situatii speciale, este preferabil sa lasati

sistemul sa execute automat acest program.

Clasa Sistem contine mijloace independente de platforma pentru operatii de intrare/

Iesire la iesire la nivelul sistemului si pentru tratarea erorilor. Sunt folosite fluxuri

standard de intrare pentru citirea unor date de tip caracter si fluxuri standard de iesire

pentru afisarea pe ecran. Iata un exemplu frecvent de folosire a clasei System:

System.out.println ( " Hello World ! " ) ;

Variabilele System sunt statice.

Exemplul urmator contine o metoda numita print ( ), care afiseaza proprietatile siste-

Mului curent, cantitatea totala de memorie a sistemului si cantitatea de memorie libe-

ra:

import java.util. * ;

class MyEnv

}

Clasa din exemplul de mai jos contine o metoda numita runCmd ( ), care lanseaza in

executie o comanda transmisa ca parametru. Metoda asteapta terminarea comenzii de

a continua executia. Daca apare o eroare in timpul executiei comenzilor exec sau

waitFor, este folosita metoda System.exit ( ), pentru a forta iesirea din aplicatie cu co-

durile de iesire indicate:

import java.io *;

class MyExec

catch ( InterruptedException e )

}

catch ( IOException e )

}

}

Aceasta aplicatie foloseste clasele descrise anterior pentru afisarea informatiilor despre sistem si pentru lansarea unei comenzi cu ajutorul metodei exec ( ). Comanda

poate fi data din linia de comanda:

import java.util. * ;

import java.io * ;

public class MyMain

}

SecurityManager

SecurityManger este o clasa abstracta. Puteti sa creati subclase ale acestei clase pentru a implementa politica dumneavoastra de securitate, de exemplupentru gestio-

nare securitatii miniaplicatiilor. Gestionarul de securitate al programului de vizuali-

zare a miniaplicatiilor este folosit pentru a restrictiona functiile unei miniaplicatii si a

va proteja de programele rauvoitoare.

Retineti faptul ca o aplicatie client poate avea un singur gestionar de securitate. In ge-

neral, aplicatiile client nu pot apela sau crea propriul gestionar de securitatate. Acesta

este executat in momentul in care programul este lansat in executie si nu poate fi in-

locuit, redefinit, extins sau supraincarcat.

String

Clasa String furnizeaza metodele pentru reprezentarea si manipularea sirurilor de caractere. Valorile sirurilor de caractere nu pot fi modificate dupa ce au fost create.

Accesul la fiecare caracter din sir poate fi asimilat cu accesul la elementele unei ma-

trice. Urmatoarele doua instructiuni sunt echivalente:

String string1 = " ben ";

Char string2 [ ] = ;

Cea de- a doua litera a sirului de caractere poate fi extrasa cu instructiunea:

String e = string1.substring ( 1, 2 );

Exista si alte metode pentru manipularea sirurilor de caractere in clasa String, ca in

exemplul urmator:

class StringFun

}

StringBuffer

Clasa StringBuffer permite crearea si modificarile sirurilor de caractere. Asa cum am

mai precizat, in mod normal, acestea nu pot fi modificate. In clasa StringBuffer exi-

sta mai multe metode si constructori pentru manipularea sirurilor de caractere. Iata

un exemplu:

benName = new StringBuffer ( ) .append ( " B " ) .append ( " e " ) .append ( " n " ).

tostring ( ) ;

Exemplul este similar cu folosirea operatorului + pentru concatenarea sirurilor de ca-

ractere.

Thread

Clasa Thread contine metode pentru crearea, manipularea si distrugerea firelor de executie. ( A se vedea capitolul 8 "Integrarea tututor elementelor : fire de executie,

exceptii si altele " , pentru mai multe informatii despre firele de executie. )

ThreadGroup

Clasa ThreadGroup contine metode pentru crearea, manipularea si distrugerea grupurilor de fire de executie.

Throwable

Metodele din clasa Throwable sunt folosite impreuna cu exceptiile. Aceasta clasa

Furnizeaza informatiile necesare pentru parcurgerea stivei in sens invers, in cazul

Aparitiei unei exceptii. De asemenea, ea afiseaza mesajele exceptiilor.

Clasele de exceptii din pachetul java.lang

Va amintiti ca pachetul java.lang cu toate clasele si subclasele sale, este importat au-

tomat in orice program. Unul din motivele pentru care exceptiile sunt incluse in pa-

chetul java.lang este faptul ca orice program trebuie sa fie capabil sa le trateze.

Despre exceptii a discutat in capitolul 8. Lista completa a claselor de exceptii este prezentata in tabelul 10.1, in ordine ierarhica, incepand de la nivelul cel mai sus al

piramidei.

Tabelul 10.1. Clasele de exceptii din pachetul java.lang

Exceptii extinde exceptia Scop

ClassNotFoundException

Exception

Este lansata atunci cand clasa specificata

nu poate fi gasita

CloneNotSupportException

Exception

Este lansata la incercare de clonare a unui

obiect care nu permita aceasta operatie

IllegalAccessException

Exception

Este lansata atunci cand accesul la metoda

specificata nu este permis

InstantiationException

Exception

Este lansata la incercare de instantiere

a unei clase abstracte sau a unei clase in-

terfete. Interfetele sunt sabloane de meto-

de si nu pot fi instantate. Clasele abstracte

sunt proiectate tot ca sabloane. Ele preci-

zeaza valorile returnate si tipul argumen-

telor dar acestea trebuie redefinite.

InterruptedException

Exception

Este lansata atunci cand un alt fir de exe-

cutie intrerupe firul de executie curent.

NoSuchMethodException

Exception

Indica faptul ca metoda specificata nu poa-

te fi modificata

RuntimeException

Exception

Detecteaza exceptiile aparute in timpul

executarii codului de octeti de catre Masi-

na virtuala Java.

ArrayStoreException

Exception

Este lansata in timpul executiei, atunci

cand utilizatorul incearca sa stocheze

Intr- o matrice un tip de obiect care nu es-

te acceptat.

ClassCastException

RuntimeException

Este lansata atunci cand se incearca o ope-

ratie incorecta de conversie.

IllegalArgumentsException

RuntimeException

Indica faptul ca a aparut o exceptie legata

de folosirea unui argument incorect.

IllegalThreadStateException

IllegalArguments

Exception

Indica faptul ca un fir de executie nu este

in starea necesara pentru executarea ope-

ratiei specificate. De exemplu, este posibil

ca in momentul cand i se cere sa execute

operatia, firul de executie sa nu ruleze.

NumberFormatException

IllegalArguments

Exception

Este lansata la folosirea unui format nu-

meric incorect; de exemplu, atunci cand

utilizatorul incearca sa atribuie o valoa-

re zecimala unei variabile de tip intreg.

ArithmeticException

RuntimeException

Este lansata la aparitia unei conditii de e-

roare aritmetica; de exemplu, atunci cand

se incearca impartirea la zero.

IllegalMonitorStateExcep-

tion

RuntimeException

Este lansata atunci cand se incearca efec-

tuarea unei operatii cu monitorul, iar a-

cesta este intr- o stare necorespunzatoare.

Ar putea indica probleme legate de drep-

tul de acces.

IndexOutOfBoundsExcep-

Tion

RuntimeException

Indica faptul ca un indice a depasit limite-

le declarate. Aceasta exceptie este destul

de generala, dar are doua subclase speci-

fice; a se vedea urmatoarele doua pozitii

din lista.

ArrayIndexOutOfBounds

Exception

IndexOutOf

BoundsException

Indica faptul ca intr- o matrice a fost folo-

sit un indice incorect

StringIndexOutOfBounds

Exception

IndexOutOf

BoundsException

Indica faptul ca indicele unui obiect de tip

String este in afara domenilui stabilit.

NegativeArraySizeException

RuntimeException

Este lansata la incercarea de creare a unei

matrice cu dimensiune negativa; cu alte

cuvinte, atunci cand argumentul folosit

pentru dimensiunea unei matrice nu este

un numar intreg pozitiv.

NullPointException

RuntimeException

Indica faptul ca s-a incercat folosirea unui

pointer cu valoarea null. Este bine sa veri-

ficati valorile pointerilor inainte de a-i fo-

losi.

SecurityException

RuntimeException

Indica faptul ca a aparut o exceptie legata

de securitate. De obicei, acestea constau in

incercarea de acces la clase, metode sau

variabile care nu au fost declarate public.

Folosirea unei exceptii din pachetul java.lang

Listingul 10.10 prezinta un exemplu de miniaplicatie Java care foloseste exceptia

ArrayIndexOutOfBoundsException. Veti vedea modul cum aceasta este generata, in-

terceptata si inlocuita cu o noua exceptie ArrayIndexOutOfBoundsException, care afiseaza un mesaj de eroare definit de programator.

      Listingul 10.10. Folosirea exceptiei ArrayIndexOutOfBoundsException

Rezumat

In acest capitol am explorat impreuna java.applet.Applet si java.lang din interfata

Java API. Pachetul java.lang contine clasele asociate structurilor de date din Java

si clasele de exceptii, folosite in toate programele Java. Clasele din pachetul Java

includ definitii de structuri precum Boolean si Integer.

Pachetul java.applet este folosit pentru crearea instantei unei miniaplicatii si efectuarea unor functii specifice. Executarea miniaplicatiilor impune existenta unui browser sau a unui program de vizualizare, iar metodele clasei Applet se bazeaza pe

Existenta acestui mediu.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 902
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved