Sunteți pe pagina 1din 50

Curs 6

Utilizarea claselor din pachetul java.lang


Clasa Object
Clase de excepii
Clasa String
Clasa StringBuffer
Clasa Class
Clase acoperitoare de tip
Clasa Math
Clasa System

Utilizarea claselor din pachetul


java.lang
Pachetul java.lang conine clasele
fundamentale i exist pe orice platform Java.
Pentru acest pachet nu este necesar
declaraia import, clasele sale fiind importate
implicit.
Lista complet a claselor din pachetul java.lang
i descrierea lor se gsesc n documentaia Java
API de pe Internet. Noi vom prezenta aici
cteva clase mai frecvent utilizate.

Clasa Object

Clasa Object este rdcina ierarhiei de clase a


platformei Java.
Este singura clas care nu are o superclas.
Orice alt clasa este derivat direct sau indirect din clasa
Object.
Conceptual, instanele clasei Object sunt obiecte oarecare,
fr atribute precizate. Variabilele referin la Object se
folosesc atunci cnd, la elaborarea programului, se
consider c lor li se pot da ca valori referine la orice fel
de obiecte, indiferent de clasa creia i aparin.
n clasa Object sunt declarate, de asemenea, metode care
se consider ca trebuie s existe n toate celelalte clase.
Unele din aceste metode vor trebui redefinite n clasele
derivate, pentru a efectua aciuni specifice acestor clase.

Metodele clasei Object


Clasa Object nu are date membre. n consecin, obiectele
acestei clase nu au stare (cu excepia faptului ce ele exist
sau nu).
Clasa are un singur constructor, Object(), care nu are
parametri.
Obiectele acestei clase nu conin date. n schimb, clasa
dispune de un set de metode.
Conform cu principiul motenirii, toate celelalte clase
posed metodele clasei Object. Metodele clasei Object
sunt descrise n Java API. Noi vom prezenta aici numai o
parte dintre ele, care vor fi utilizate n cele ce urmeaz.

Metoda equals() este declarat sub forma:


public boolean equals(Object obj)
nivelul de acces este public
valoarea ntoars (valoarea obinut la
evaluarea acestei funcii) este de tip boolean,
unicul argument aparine clasei Object.
Expresia a.equals(b) n care a i b sunt dou
obiecte, ntoarce valoarea true dac a este identic cu
b i valoarea false n caz contrar.
Aa cum este ea definit n clasa Object, metoda equals()
ntoarce valoarea true numai dac cele doua obiecte
comparate sunt cu adevrat identice, adic au aceeai adres
n memorie, ceeace se poate scrie i sub forma expresiei
a==b.
n clasele derivate, aceast metoda poate fi redefinit,
respectnd principiul polimorfismului, astfel nct s compare
cele dou obiecte dup coninut, chiar dac ele nu au aceeai
referin.

Metoda hashCode() este declarat sub forma


public int hashCode()

i ntoarce codul de dispersie al obiectului cruia i se aplic.


Codul de dispersie (englez: hash code) este un numr ntreg
(de tip int) care are urmtoarele proprieti:
- dac se aplic de mai multe ori aceluiai obiect, metoda
hashCode() ntoarce de fiecare dat acelai cod de
dispersie;
- dac dou obiecte sunt egale ntre ele n sensul definit
prin metoda equals(), atunci codurile de dispersie obinute
aplicnd metoda hashCode() fiecruia n parte trebuie s fie,
de asemenea, egale;
- este posibil ca, aplicnd metoda hashCode() la doua
obiecte diferite, s se obin coduri de dispersie egale, nsa
este preferabil ca aceast situaie s se ntlneasc ct mai
rar cu putin.

Metoda toString() este declarat sub forma


public String toString()
ntoarce reprezentarea sub forma de ir de caractere
(de obiect din clasa String) a obiectului cruia i se
aplic.
Expresia a.toString(), n care a este un obiect, ntoarce
reprezentarea sub forma de ir a obiectului a. n cazul
obiectelor aparinnd clasei Object, aceasta metod
ntoarce un ir de forma:
java.lang.Object@<cod_dispersie>
n care <cod_dispersie> este codul de dispersie al
obiectului respectiv, exprimat n hexazecimal.
n clasele derivate aceasta metod este redefinit, astfel
nct s se obin o reprezentare sub form de ir a
coninutului obiectului respectiv.

Metoda clone() este declarat sub forma:


protected Object clone()
ntoarce un obiect identic cu acesta, dar situat
la o alt adres de memorie i deci avnd o alt
referin.
n consecin, dup ce se execut instruciunea
b=a.clone();
n care a i b sunt referine la obiecte,
expresia a==b va avea valoarea false, deoarece
valorile variabilelor referin a i b sunt
diferite, n timp ce expresia a.equals(b) va
ntoarce n mod normal valoarea true, deoarece
cele dou obiecte comparate au coninuturi
identice.

n schimb, dup ce se execut instruciunea


b=a;
variabila b va avea ca valoare aceeai
referin ca i variabila a, adica a i b vor
indica acelai obiect din memorie, astfel c
expresia a==b ntoarce valoarea true.
ntruct metoda clone() este protejat (are
nivelul de acces protected) ea nu poate fi
utilizat dect pentru obiectele din clasa
Object. n schimb, ea poate fi redefinit la
clasele descendente, astfel nct sa devin
public.

Metoda getClass() este declarat sub forma

public final Class getClass()

O expresie de forma a.getClass(), n care a este


o referinta la un obiect, ntoarce ca valoare un
obiect din clasa Class, care conine informaii
despre clasa obiectului indicat de variabila a.
Deocamdat vom folosi aceast metoda numai
pentru a afia numele clasei, ca n ultimele trei
instruciuni ale programului din fiierul
TestObject.

Clase de excepii
n pachetul java.lang exist i numeroase clase de
excepii.
Instanele acestor clase sunt creeate de ctre maina
virtual Java atunci cnd se produce o excepie, adic o
situaie anormal n procesul de calcul.
Toate aceste clase sunt descrise n documentatia Java
API. Vom meniona aici numai dou dintre ele, celelalte
urmnd s fie indicate la descrierea claselor care conin
metode care pot genera excepii.
n limbajul Java se face distincie ntre excepie i eroare.
Se consider ca excepiile sunt incidente care pot fi captate prin
mecanismul try .. catch i pot fi deci tratate prin program, n timp ce
erorile sunt incidente grave, care - de regul - nu pot fi tratate prin
program ci produc oprirea executrii acestuia.

Clasa Exception

Aceast clas este rdcina ierarhiei claselor de excepii.


n consecin, atunci cnd dorim ca in clauza catch sa fie
captat orice fel de excepie, scriem aceast clauz sub forma

catch(Exception e) {
instructiuni_de_tratare_a_exceptiei e
}
unde e este numele simbolic (identificatorul) dat excepiei
captate.
Clasa are doi constructori:
public Exception()
creeaz un obiect din clasa Exception (deci "o excepie") care nu
conine nici un mesaj.
public Exception(String s)
creeaz un obiect din clasa Exception, care conine un mesaj sub
forma irului s. Prin acest mesaj se indic, de regul, ce incident a
condus la generarea excepiei respective.

Vom arta ulterior cum putem folosi aceti constructori


pentru a genera propriile noastre excepii.
Clasa Exception nu are propriile ei metode. Totui, att
pentru clasa Exception, ct i pentru toate celelalte clase de
excepii se pot folosi metodele superclasei Object. n
particular, se poate folosi pentru instanele oricrei clase de
excepii metoda toString(), care pune instana respectiv
sub forma unui ir de caractere. Acest ir conine, de
regul, un mesaj privind felul exceptiei respective.

Clasa ArithmeticException
Instanele acestei clase sunt generate de maina virtual
Java atunci cnd are loc o situaie anormal la efectuarea
unei operaii aritmetice, cum ar fi, de exemplu, mprirea
la zero a unui numr ntreg. Instana respectiv conine un
mesaj care indic ce fel de excepie s-a produs.

Clasa String
Toate irurile n limbajul Java, inclusiv literalii-ir, de
exemplu "ABCdef123", sunt obiecte ale clasei String.
Obiectele din aceast clas sunt constante, adic irurile
coninute n ele nu pot fi modificate.
Dac este necesar s se foloseasc iruri modificabile, se
recurge la clasa StringBuffer.
n afar de metodele pe care le ofer, clasa String conine
i suportul necesar pentru operatorul de concatenare'+'.
Exemplu: "ABC"+"defg" are ca valoare irul "ABCdefg".
Construirea unui obiect din clasa ir se face cel mai frecvent
cu constructorul
String(String s)
Acest constructor creeaza n memorie o copie a irului
s primit ca argument.

int compareTo(String anotherString)


Compara acest ir cu irul anotherString primit ca argument.
Dac cele dou iruri sunt identice, ntoarce 0 (zero).
Dac acest ir l precede pe anotherString ntoarce o valoare negativ,
Daca i succede lui anotherString ntoarce o valoare pozitiv.
Compararea irurilor se face n ordine lexicografic (n ordinea n care ar
fi plasate ntr-un dicionar).
int compareToIgnoreCase(String str)
Compar lexicografic acest ir cu sirul str primit ca argument,
ignornd deosebirea dintre literele majuscule i cele minuscule.
int length()
ntoarce lungimea acestui ir (numrul de caractere coninute).
String trim()
ntoarce un nou ir, obinut din acest ir prin eliminarea spaiilor de
la nceput i de la sfrit.

int indexOf(int ch)


ntoarce indicele la care se gsete n ir prima
apariie a caracterului ch. Dac acest caracter nu exist n
ir, ntoarce -1. int indexOf(int ch, int fromIndex)
Similar cu metoda precedent, dar cutarea in sir
ncepe de la poziia fromIndex.
int indexOf(String str)
ntoarce indicele poziiei de la care n acest ir apare
prima dat subirul str.
int indexOf(String str, int fromIndex)
Similar cu metoda precedent, dar cutarea n acest
ir ncepe de la poziia fromIndex.
int lastIndexOf(int ch)
ntoarce indicele ultimei poziii pe care apare
caracterul ch n acest ir.

int lastIndexOf(int ch, int fromIndex)


ntoarce indicele ultimei poziii pe care se gsete
caracterul ch, dac se face cutarea napoi, ncepnd de la
poziia fromIndex.
int lastIndexOf(String str)
ntoarce indicele ultimei apariii n acest ir a
subirului str.
int lastIndexOf(String str, int fromIndex)
Similar cu metoda precedent, dar cutarea napoi se
face de la poziia fromIndex.
String substring(int beginIndex)
ntoarce un nou ir, care conine caracterele acestui
ir, ncepnd de la poziia beginIndex, pn la sfrit.
String substring(int beginIndex, int endIndex)
ntoarce subirul situat ntre pozitiile beginIndex i
endIndex-1 inclusiv.

TestStr

Clasa StringBuffer
Obiectele clasei StringBuffer implementeaz iruri care
pot fi modificate att ca lungime, ct i sub aspectul
caracterelor pe care le conin.
n englez buffer nseamn zon tampon. Aa dar, un
"StringBuffer" este modelul unei zone tampon de
memorie, n care se pot aduga noi caractere la irul
existent i n care se pot nlocui total sau parial
caracterele existente cu altele.
Principalele operaii asupra unei astfel de "zone tampon"
sunt metodele append() i insert(), prin care se poate
aduga un ir nou n coada celui existent, sau se nsereaz
acest ir nou n interiorul celui existent.

Un obiect StringBuffer (zona tampon pentru caractere) se


caracterizeaz prin lungime i capacitate. Lungimea este
numrul de caractere coninut efectiv, iar capacitatea este
dimensiunea la un moment dat a tabloului de caractere
coninut n obiectul respectiv. Ambele se pot modifica n
timp, ca urmare a aplicrii unor metode.
Construirea unui nou StringBuffer se poate face cu unul din
constructorii StringBuffer(), StringBuffer(int length) sau
StringBuffer(String str). Primul dintre ei construiete o
zon tampon de caractere, avnd o capacitate iniial
predefinit; al doilea una de capacitate iniial length, iar al
treilea construiete o zon tampon care conine iniial irul
str.

Cele mai importante metode sunt:

public int length() - ntoarce lungimea curent a irului


(numrul de caractere existente efectiv n buffer);
public int capacity() - ntoarce capacitatea curent a
buffer-ului;
public StringBuffer append(char c) - adaug la
buffer caracterul c;
public StringBuffer insert(int offset, char c) nsereaza n buffer caracterul c pe pozitia offset;
public String toString() - ntoarce un ir care are
acelai coninut cu cel din acest StringBuffer.

TestStrB

Exist, de fapt, o familie de metode append(), care difer


ntre ele prin tipul argumentului:
append(boolean b), append(byte b), append(short s),
append(int i), append(long l), append(char c),
append(float f), append(double d),append(String str),
append(Object obj)
Toate aceste metode adaug n coada zonei tampon argumentul lor,
convertit ntr-un ir.

Exist, de asemenea, o familie de metode insert(), care


difer prin tipul celui de al doilea argument:
insert(int offset, boolean b),
insert(int offset, byte b), insert(int offset, short s),
insert(int offset, int i), insert, int offset, long l),
insert(int offset, char c), insert(int offset, float f),
insert(int offset, double d),
insert(int offset, String str),
insert(int offset, Object obj).
Toate aceste metode nsereaz n zona tampon, pe poziia offset, cel de
al doilea argument convertit n ir.

Clasa Class
O caracteristic important a limbajului i platformei Java
este c clasele i interfeele utilizate n program sunt
prezente n memoria mainii virtuale Java n timpul
executrii programului, sub forma de instane ale clasei
Class.
n consecin, se pot obine n timpul executrii unui
program informaii despre clasele crora le aparin
obiectele din memorie.
Clasa Class nu are un constructor public. n schimb, putem
obine un obiect din aceast clas folosind metoda
getClass() a clasei Object.
Exist i instane ale clasei Class pentru tipurile de date
primitive. Acestea sunt coninute sub forma de cmpuri
statice n clasele acoperitoare ale tipurilor primitive
respective.

Iat cteva dintre metodele clasei Class:

public String getName() - ntoarce numele calificat al unei


entiti (clase, interfee, tip primitiv) reprezentat de un obiect din
clasa Class;
public boolean isAssignableFrom(Class cls) - ntoarce true
dac clasa creia i se aplic metoda este o superclas a clasei cls,
primit ca argument;
public boolean isInterface() - ntoarce true dac metoda este
aplicat unei instane a clasei Class care reprezint o interfa;
public boolean isPrimitive() - ntoarce true dac metoda este
aplicat unui obiect din clasa Class care reprezint un tip de date
primitiv;
public Class getSuperclass() - ntoarce o instan a clasei
Class care reprezint superclasa obiectului cruia i se aplic aceast
metod.
n fiierul TestClass este dat un program de testare a obinerii
obiectelor Class i a aplicrii unora dintre metodele acestora.
Descrierea complet a clasei Class este dat n documentaia Java API.

Clasele acoperitoare de tip


n pachetul java.lang, pentru fiecare din tipurile de date
primitive exist o clas acoperitoare de tip (englez: Type
Wrapper).
Aceste clase pun la dispoziia programatorului att variabile
finale (constante), ct i metode necesare pentru a lucra cu
tipul de date respectiv.

In aceasta figur, clasele acoperitoare de tip sunt


reprezentate cu negru.
Clasa Number este o clasa abstract, din care sunt
derivate toate clasele acoperitoare pentru tipuri de date
numerice.
Fiecare din celelalte clase acoper un anumit tip de date
primitiv.
Clasa Character acoper tipul char, iar clasa Integer
acoper tipul int.
Toate celelalte clase acopera tipul primitiv al carui nume l
poart.
Spre deosebire de numele tipurilor primitive, care sunt
scrise cu litere mici, numele claselor acoperitoare ncep (ca
la orice alte clase) cu majuscule.

Fiecare instan a unei clase acoperitoare conine un cmp


de date nestatic n care se pastreaz o valoare aparinnd
tipului primitiv de date corespunzator clasei respective.
De exemplu, un obiect din clasa Boolean conine un cmp
de tip boolean care, la rndul lui, conine valoarea logic
true sau false.
n mod similar, un obiect din clasa Double conine un
cmp de tip double n care exist un numr n virgul
mobil n dubl precizie.
n afar de cmpul de date nestatic, fiecare clas
acoperitoare conine mai multe cmpuri de date statice
finale, n care se pstreaz diferite constante (variabile
finale) specifice tipului de date corespunztor.

Prezentm aici succint principalele metode prezente n


toate clasele:
public boolean equals(Object obj) - este o
redefinire a metodei equals()din clasa Object ; compar
obiectul propriu cu obiectul obj primit ca argument i
ntoarce true dac acestea sunt identice, sau false n caz
contrar;
public String toString() - este o redefinire a
metodei toString() din clasa Object ; ntoarce valoarea
primitiv coninut n obiectul respectiv, convertit ntr-un
ir de caractere, reprezentnd forma extern a valorii
respective;
public int hashCode() - este o redefinire a metodei
hashCode() din clasa Object; intoarce codul de dispersie al
obiectului propriu.
Clasele acoperitoare ofer, de asemenea, metode prin care
se pot converti datele din tipurile respective din forma
extern (de iruri de caractere) n cea interna i invers.

CLASA BOOLEAN

Clasa Boolean acoper tipul primitiv boolean.


Clasa are doi constructori publici:

Boolean(boolean value) i Boolean(String s)


Primul primete ca argument o expresie cu valoare de tip
boolean, iar al doilea primete un ir de caractere, care
conine forma extern a unei valori de tip boolean.

n afara de metodele equals(), toString() i hashCode(), care au fost


deja menionate, clasa Boolean mai ofer urmtoarele metode specifice:

public boolean booleanValue() - ntoarce valoarea


primitiv de tip boolean coninut n obiectul propriu;
public static Boolean valueOf(String s) ntoarce o noua instan a clasei boolean, corespunztoare
irului s: dac irul s este "True" ntoarce TRUE, altfel
ntoarce FALSE. Are, practic, acelai efect cu aplicarea
operatorului new cu constructorul Boolean(String s).

Clasa Boolean motenete, de asemenea, metodele clasei Object.

CLASA ABSTRACT NUMBER


Este superclasa tuturor tipurilor de date numerice, cu excepia tipului
char.Contine urmtoarele metode:
public abstract byte byteValue() - ntoarce

numrul convertit la tipul primitiv byte, ceeace poate avea


ca efect rotunjirea sau trunchierea;
public abstract short shortValue() - ntoarce
numrul convertit la tipul primitiv short, ceeace poate avea
ca efect rotunjirea sau trunchierea;
public abstract int intValue() - ntoarce numrul
convertit n tipul primitiv int, ceeace poate avea ca efect
rotunjirea;
public abstract long longValue() - ntoarce
numrul convertit la tipul primitiv long, ceeace poate avea ca
efect rotunjirea;
public abstract float floatValue() - ntoarce
numarul convertit la tipul primitiv float;
public abstract double doubleValue() - ntoarce
numarul convertit la tipul primitiv double.

CLASA INTEGER

Clasa conine urmtoarele cmpuri de date statice:


public static final int MAX_VALUE - conine
valoarea maxim pentru tipul de date int, adic valoarea
2147483647;
public static final int MIN_VALUE - conine
valoarea minim pentru tipul de date int, adic
-2147483648;
public static final Class TYPE - conine un obiect
din clasa Class cu informaii despre tipul primitiv int.
Clasa are doi constructori:
public Integer(int value) - construiete instana
clasei Integer care conine valoarea primitiv value;
public Integer(String s) - convertete irul s,
primit ca argument, ntr-un numr de tip int i construiete
obiectul Integer care conine acest numr; dac irul s nu
reprezint forma extern a unui numr ntreg, se obine
excepia NumberFormatException. Remarcm deci c se
face analiza sintactic a irului s pentru a se verifica dac
acesta este cu adevrat un numr ntreg.

Clasa ofer un numeroase metode, att de instan, ct i


statice, care sunt utile cnd se lucreaz cu numere ntregi.
Dintre acestea menionm:
a/ metodele equals(), toString() i hashCode()
existente n toate clasele acoperitoare;
b/ metodele byteValue(), shortValue(),
intValue(), longValue(), floatValue()si
doubleValue() existente n toate subclasele clasei
Number;
c/ metode statice, utile n diverse operaii cu numere
ntregi:
public static int parseInt(String s) - face
analiza sintactic a irului s, considerat ca forma extern a
unui numr ntreg n sistemul de numeraie zecimal, i
ntoarce valoarea de tip int corespunzatoare; dac irul s nu
are forma corect a unui numr ntreg, se obine excepia
NumberFormatException;

public static int parseInt(String s, int radix)


- acioneaza asemntor cu metoda precedent, cu deosebirea
c se consider c irul s este un numr n sistemul de
numeraie cu baza radix;
public static String toBinaryString(int i) ntoarce numrul ntreg i convertit ntr-un ir care l
reprezint n sistemul de numeraie binar;
public static String toHexString(int i) ntoarce numrul ntreg i convertit ntr-un ir hexazecimal;
public static String toOctalString(int i) ntoarce numrul ntreg i convertit ntr-un ir n sistemul de
numeraie octal;
public static String toString(int i) - ntoarce
numrul ntreg i convertit ntr-un ir n sistemul de numeraie
zecimal (se deosebete de metoda toString(), motenit de la
clasa Object, prin faptul ca nu este o metod a instanei, ci
una static);

public static String toString(int i, int radix)


- ntoarce un ir care conine numrul intreg i convertit n
sistemul de numeraie cu baza radix;
public static Integer valueOf(String s) acioneaz asemntor cu metoda parseInt(String s), dar
ntoarce un obiect din clasa Integer;
public static Integer valueOf(String s, int radix)
-similara cu metoda precedent, dar se consider c irul s
este un numr ntreg n baza de numeraie radix;
public static Integer decode(String s)
- analizeaz irul s i l decodific; dac acesta respect unul
din formatele admise pentru numere ntregi, adic este forma
extern a unui numr ntreg n unul din sistemele zecimal,
hexazecimal (incepe cu 0x) sau octal (incepe cu 0), atunci il
convertete n valoare intern de tip int i ntoarce obiectul de
clasa Integer care contine aceasta valoare; altfel, ntoarce
excepia NumberFormatException.

d/ metode ale instanei (n plus, fa de cele menionate la


punctele a/ i b/):
public int compareTo(Integer anotherInteger)
- compar propriul obiect din clasa Integer cu obiectul
anotherInteger primit ca argument. Dac ele sunt egale,
ntoarce zero; daca ntregul propriu este mai mic dect
argumentul, ntoarce o valoare negativ, iar dac este mai
mare ntoarce o valoare pozitiv;
public int compareTo(Object obj) - dac obiectulargument obj este tot un Integer, atunci aceast metod
acioneaz la fel cu cea precedent; altfel, se obine
excepia ClassCastException.

CLASELE FLOAT I DOUBLE


Instanele claselor Float i Double "acoper" valori
ale tipurilor primitive corespunztoare, respectiv
float i double.
Ele ofer, de asemenea, metode de conversie a
irurilor n numere reale (cu analiza sintactic
corespunztoare) i a numerelor reale n iruri.
Vom prezenta aici clasa Double, dar aceleai
faciliti exist i n clasa Float. Clasa

Double (i similar clasa Float) ofer urmtoarele cmpuri de


date statice:
public static final double MAX_VALUE - cea mai
mare valoare pozitiv de tip double;
public static final double MIN_VALUE - cea mai
mic valoare pozitiv de tip double;
public static final double NaN
- valoarea
NaN (Not a Number) pentru tipul double;
public static final double POSITIVE_INFINITY
- valoarea Infinity pentru tipul double;
public static final double NEGATIVE_INFINITY
- valoarea -Infinity pentru tipul double;
public static final Class TYPE - un obiect din
clasa Class cu informaii despre tipul primitiv double.

Constructori:
Double(double value) - construiete o instan a
clasei Double care conine valoarea primitiv value;
Double(String s) - construiete o instan a clasei
Double care conine valoarea primitiv de tip double a crei
form extern este irul s primit ca argument; dac acest
ir nu este corect sintactic, se obtine excepia
NumberFormatException.
Metode:
a/ metodele equals(), toString() si hashCode()
existente n toate clasele acoperitoare;
b/ metodele byteValue(), shortValue(),
intValue(), longValue(), floatValue() si
doubleValue() existente n toate subclasele clasei
Number;

c/ metode statice, utile n diverse operaii cu numere


reale:

public static double parseDouble(String s)


- analizeaz sintactic irul s primit ca argument i dac este corect - ntoarce valoarea primitiv double
corespunzatoare; altfel genereaz excepia
NumberFormatException;

public static String toString(double d) convertete n sir numrul primitiv primit ca argument;

public static Double valueOf(String s) acioneaza asemntor cu metod parseDouble(String), dar


intoarce un obiect din clasa Double;
public static long doubleToLongBits(
double value) - ntoarce o valoare de tip long care este
reprezentarea pe 64 bii, conform standardului IEEE 754, a
numrului de tip double primit ca argument;
public static double longBitsToDouble(
long bits) - ntoarce o valoare de tip double, a crei
reprezentare ca long (ntreg pe 64 bii) conform standardului
IEEE 754 este cea primit ca argument;
public static boolean isInfinite(double v) ntoarce true dac argumentul v este infinit;
public static boolean isNaN(double v) - ntoarce
true dac argumentul v este NaN;

d/ metode ale instanei (n plus, fa de cele menionate la


punctele a/ i b/):
public int compareTo(Double anotherDouble) compar propriul obiect din clasa Double cu obiectul
anotherDouble primit ca argument; dac ele sunt egale,
ntoarce zero; dac numrul propriu este mai mic dect
argumentul ntoarce o valoare negativ, iar dac este mai
mare ntoarce o valoare pozitiv;
public int compareTo(Object obj) - dac obiectulargument obj este tot un Double, atunci aceast metod
acioneaz la fel cu cea precedent; altfel, se obine
excepia ClassCastException.
public boolean isInfinite() - ntoarce true dac
valoarea coninut n obiectul propriu este infinit;
public boolean isNaN() - ntoarce true dac
valoarea coninuta n obiectul propriu este NaN;

CLASA CHARACTER
Fiecare obiect al clasei Character "acoper" o valoare
primitiva de tip char. n plus, clasa Character ofer metode
utile n lucrul cu caractere. Reamintim c, n limbajul Java,
caracterele sunt reprezentate pe 16 bii, n sistemul
Unicode.
Cmpuri statice:
Clasa Character conine numeroase cmpuri de date statice,
prezentate n documentaia Java API. Cele mai multe dintre
ele sunt coduri numerice ale diferitelor categorii de
caractere (litere majuscule, litere minuscule, cifre zecimale,
simboluri matematice etc), folosite n metodele care verific
dac un anumit caracter corespunde categoriei respective.
Printre ele exist ns i cmpul
public static final Class TYPE
care conine un obiect din clasa Class cu informaii despre
tipul primitiv char.

Constructori: Clasa Character are un singur constructor


public Character(char value) - construiete un
obiect al clasei Character care conine caracterul primit ca
argument.
Metode statice:

public static boolean isDigit(char ch) ntoarce true dac argumentul ch este cifr;
public static boolean isLetter(char ch) ntoarce true dac argumentul este liter;
public static boolean isLowerCase(char ch) ntoarce true dac ch este liter mic;
public static boolean isUpperCase(char ch) ntoarce true daca ch este liter majuscul;
public static boolean isLetterOrDigit(char
ch) - verific dac ch este liter sau cifr;
public static boolean isWhitespace(char ch) -

verific dac ch este un spaiu liber sau un alt caracter asimilabil


acestuia, de exemplu caracter de trecere la linie nou, de ntoarcere a
carului, de tabulare orizontal sau vertical, de separare a fiierelor sau
nregistrrilor etc (vezi documentaia).

public static boolean isSpaceChar(char ch) verific dac ch este caracterul spaiu;
public static char toLowerCase(char ch) ntoarce caracterul ch convertit n litera mic; dac nu este
liter, l las neschimbat;
public static char toUpperCase(char ch) ntoarce caracterul ch convertit n litera majuscul; dac nu
este liter, l las neschimbat;
public static int getNumericValue(char ch) ntoarce valoarea numerica Unicode a caracterului ch ca un
ntreg nenegativ;
public static int digit(char ch, int radix) ntoarce valoarea numeric a caracterului ch considerat ca
cifra a sistemului de numeraie cu baza radix; dac n sistemul
respectiv nu exist o astfel de cifr, ntoarce -1;
public static char forDigit(int digit,
int radix) - ntoarce caracterul prin care este reprezentat
cifra de valoare digit n sistemul de numeraie cu baza radix;
daca n sistemul respectiv nu exista o asemenea cifr, ntoarce
caracterul nul ('\u0000');

Metode nestatice:
n afara de metodele generale equals(), toString()
i hashCode(), clasa Character ofer, de asemenea,
urmtoarele metode:
public char charValue() - ntoarce caracterul primitiv
coninut n obiectul propriu din clasa Character;
public int compareTo(Character anotherCharacter)
- compar caracterul din propriul obiect cu cel primit ca
argument i ntoarce valoare nul dac sunt egale, negativ daca
primul este mai mic dect al doilea i valoare pozitiv dac este
mai mare;
public int compareTo(Object obj) - dac argumentul
obj este un obiect din clasa Character, actioneaz similar cu
metoda precedent; altfel genereaz excepia
ClassCastException;

CLASA VOID

Clasa Void nu este instaniabil (nu poate


avea obiecte) i "acoper" tipul primitiv
void. Ea conine numai un singur cmp
static
public static final Class TYPE
care conine un obiect din clasa Class cu
informaii despre tipul primitiv void.

Clasa Math
Conine un numr mare de funcii matematice (funcii
trigonometrice, logaritmice, exponeniale etc) i dou
constante matematice: numrul e i numrul pi.
Constantele sunt reprezentate sub forma urmtoarelor
dou cmpuri statice finale ale clasei:
public static final double E
- numrul e (baza logaritmilor naturali);
public static final double PI
- numarul pi (raportul dintre perimetrul i diametrul
cercului).
Aceste constante se folosesc n expresiile din program sub
forma Math.E i Math.PI.

Funciile matematice se prezint n aceast clas sub forma


de metode statice. Menionm aici numai cteva din aceste
funcii, cu precizarea c arcele (unghiurile) se exprim n
radiani:
public static double sin(double a) - sin a.
public static double cos(double a) - cos a.
public static double tan(double a) - tg a.
public static double asin(double a) - arcsin a.
public static double acos(double a) - arccos a.
public static double atan(double a) - arctg a.
public static double exp(double a) - ea.
public static double log(double a) - ln a.
public static double sqrt(double a) - radacina
patrat a lui a.

Clasa System

Clasa System conine cmpuri i metode utile pentru realizarea


legturii dintre aplicaie i sistemul de execuie Java (cel care
implementeaz maina virtual Java). Aceast clas nu poate fi
instaniat.
Cmpuri statice:
Clasa System are trei cmpuri statice care reprezint unitile
standard de intrare/ieire ale sistemului:
public static final InputStream in - este intrarea
standard a sistemului. De regul, aceasta este tastatura, dar
poate fi i alt dispozitiv indicat de utilizator.
public static final PrintStream out - este ieirea
standard a sistemului. De regul este unitatea de afiare
standard (ecranul) dar poate fi i alt dispozitiv indicat de
utilizator. Afiarea datelor pe ecran se face, de regul folosind
metoda System.out.println(sir) sau System.out.print(sir).
public static final PrintStream err - unitatea
standard de ieire pentru erori. De regul este aceeai ca pentru
obiectul out, dar poate fi i alt dispozitiv indicat de utilizator.

Metode:

Dm aici numai metodele care sunt utilizate de noi n acest


curs. Descrierea complet a tuturor metodelor clasei
System poate fi gasit n documentaia Java API.
public static void exit(int status)- provoaca
incheierea executrii programului. Argumentul acestei
metode este un cod de stare care se transmite mainii
virtuale Java. Prin convenie, 0 nseamn ncheiere normal a
executrii aplicaiei, iar un cod diferit de zero indic
ncheiere anormal (cu cod de eroare). Metoda se folosete
n program sub forma instructiunii System.exit(stare);.

public static void setIn(InputStream in)schimb unitatea de intrare standard. Noua unitate de
intrare standard va fi obiectul din clasa InputStream dat
prin argumentul in.
public static void setOut(PrintStream out)schimba unitatea de ieire standard pentru date. Noua
unitate de ieire va fi obiectul din clasa OutputStream dat
prin argumentul out.
public static void setErr(PrintStream err)schimb unitatea de ieire standard pentru erori. Noua
unitate de iesire va fi obiectul din clasa OutputStream dat
prin argumentul err.
public static long currentTimeMillis()- ntoarce
timpul curent n milisecunde. Acesta este un numr de tip
long, care exprim timpul n milisecunde msurat cu ncepere
de la data de 1 ianuarie 1970 ora 0.

S-ar putea să vă placă și