Documente Academic
Documente Profesional
Documente Cultură
Tehnologii Si Platfome JAVA Pentru Aplicatii Distribuite PDF
Tehnologii Si Platfome JAVA Pentru Aplicatii Distribuite PDF
TEHNOLOGII I PLATFORME
JAVA PENTRU APLICAII
DISTRIBUITE
Limbajul de programare Java
Prefa
Introducere
Obiecte totul e obiect
Operatori
Controlul execuiei
Iniializare
Controlul accesului
Reutilizarea claselor
Polimorfism
Interfee
Limbajul de programare Java
Clase interne
Agregarea obiectelor
Tratarea erorilor cu excepii
iruri de caractere
Informaii despre tip
Generics
Tablouri
Containeri
I/O
Tipuri enumerate
Abstractizare
Ce este o clas?
Ce este un obiect?
Crearea de tipuri abstracte de date = concept
fundamental n POO
Un obiect este o instan/realizare a unei
clase
Clasa definete starea i comportamentul
obiectelor
n POO crem noi tipuri de date (clase)
Obiecte
Car Engine
Motenire
O clas conine
Cmpuri (membri dat) obiect de orice tip la
care ne referim prin referin sau un tip primitiv
Metode (funcii membre)
class DoarDate
{
int i;
double d;
boolean b;
}
DoarDate date = new DoarDate();
Date membre
int Stocare(String s)
{
return s.length()*2;
}
Funcia calculeaz numrul de octei necesari
pentru stocarea irului de caractere
Funciile pot avea tipul de return void
n funcii void instruciunea return poate
apare fr nici o valoare
Crearea unui program Java
Vizibilitatea numelor
Cum se evit ambiguitile de nume?
n C e de negestionat
n C++ exist clase dar sunt permise i nume
globale. S-a introdus namespace
n Java folosim numele domeniului de
Internet n ordine invers pentru a produce
nume neambigue pentru o bibliotec.
Crearea unui program Java
/* Comentariu
* pe mai
* multe linii
*/
Sau
/* Comentariu
pe mai multe linii */
//comentariu pe o singur linie
Documentaie comentariu
Operatori
Aditivi: +, -
Multiplicativi: *, /, %
Atribuire compus: +=, -= etc.
Pentru a genera numere aleatoare folosim
clasa Random
Random rnd = new Random();
int n = rnd.nextInt(100);
nextInt(), nextFloat(), nextLong(),
nextDouble()
Operatori
+, - unar
++, -- incrementare, decrementare (pre i
post)
Exemplu: operators/AutoInc.java
Operatorul de atribuire i operatorii de
incrementare/decrementare sunt singurii care
au efecte secundare
Java = C++-- (Bill Joy unul din creatorii
Java)
Operatori
Operatorii logici
AND - &&
OR - ||
NOT - !
Pot fi aplicai doar asupra unor valori de tip
boolean spre deosebire de C, C++
Atenie la compararea valorilor de tip
float/double
Evaluare prin scurt-circuit
A && B dac A este fals B nu se mai evalueaz
A || B dac A este true B nu se mai evalueaz
Operatori - literali
Exponeniere
float exp = 1.39e-43f
e nseamn zece la puterea
Notaia e a fost introdus n FORTRAN i s-a
pstrat n C, C++, Java etc.
Caracterul de la sfritul literalului nu trebuie
adugat dac se poate determina tipul.
long n = 200; // nu e nici o ambiguitate
float f 2= 1e-43f; // fr f literalul este tratat ca
fiind double
Operatori pe bii
Operatori pe bii:
NOT ~ (operatorul complement fa de unu)
AND, OR i XOR pot fi aplicai asupra valorilor
de tip boolean. Nu apare scurtcircuit.
NOT (~)nu poate fi aplicat asupra valorilor de
tip boolean
Deplasare pe bii (pot fi folosii doar cu tipuri
ntregi primitive operanzii char, byte, short
sunt transformai n int i rezultatul va fi int)
Operatori pe bii
Operatori de deplasare
Stnga << (se completeaz cu zero)
Dreapta >> (se completeaz cu bitul de semn)
Dreapta fr semn >>> (se completeaz zero)
if-else
while
do-while
for
return
break
switch
goto
Controlul execuiei
if-else
Sintaxa
if(expresie-boolean)
Instruciune
sau
if(expresie-boolean)
Instruciune
else
Instruciune
Instruciunea poate fi simpl sau compus
Controlul execuiei
Instruciune de iteraie/repetiie
while
do-while
for
Se repet o instruciune ct timp o condiie
este adevrat/pn cnd condiia devine
fals
Controlul execuiei
while Sintaxa:
while(expresie-boolean)
Intstruciune
dowhile Sintaxa:
do
Instruciune
while(expresie-boolean);
Controlul execuiei
for Sintaxa
for(iniializare; expresie-boolean; pas)
instruciune
Oricare din cele trei expresii poate lipsi
Expresia boolean este evaluat nainte de a
executa instruciunea
Pas este executat dup instruciune
Controlul execuiei
Operatorul virgul
Virgul poate fi i separator
Poate fi folosit la instruciunea for n partea
de iniializare sau n partea de pas
Expresiile se evalueaz de la stnga la
dreapta i valoarea ntregii expresii va fi egal
cu valoarea ultimei expresii din list
Controlul execuiei
Exemplu foreach
for(char c: Hello.toCharArray())
System.out.print(c);
Instruciunea foreach este mai concis dect
instruciunea for
Instruciunea for trebuie s specifice toate
detaliile pentru modul n care se face iterarea
Controlul execuiei
class X
{
X()
{
System.out.println(X());
}
}
// n metoda main
X x = new X();
Iniializare i curare
class X
{
X(int i)
{
System.out.println(X() + i);
}
}
// n main
X x = new X(123);
Iniializare i curare
Cuvntul this
class X { void f(int i) { /**/}}
//
X x1 = new X(), x2 = new X();
x1.f(1); x2.f(2);
Avnd n vedere c exist o singur metoda f(),
de unde tie metoda pentru care obiect este
apelat?
n fundal compilatorul transform apelul ntr-o
expresie de forma:
X.f(x1, 1); X.f(x2,2);
Iniializare i curare
GC nu nseamn distrugere
Dac trebuie fcute diverse operaii nainte
de a ne dispensa de un obiect acestea trebuie
fcute ntr-o metod special
Java nu are conceptul de destructor
Se poate ca pentru un program GC s nu
intervin nici mcar o dat (dac sistemul nu
ajunge n situaia de a epuiza memoria)
GC implic nite costuri de timp de execuie
Iniializare i curare
Iniializarea membrilor
Java garanteaz c variabilele vor fi
iniializate n mod corespunztor nainte de a
fi folosite
void f()
{
int i; // variabilele locale nu sunt initializate implicit
i++; // Eroare de compilare i neinitializat
}
Iniializare i curare
Enumerri:
enum Culori {ROSU, VERDE, VERDE_DESCHIS};
Culori c = Culori.ROSU;
Compilatorul creeaz metodele
toString()
ordinal()
values() // metod static ce produce un tablou de
valori ale enumerrii
Exemple:
initialization/EnumOrder.java
Initialization/Burrito.java
Curs pentru
MAI anul II
2011-2012 semestrul II
Lect. univ. dr. Horea Oros
Email: horea.oros@gmail.com
Universitatea din Oradea, Departamentul de Matematic i Informatic
TEHNOLOGII I PLATFORME
JAVA PENTRU APLICAII
DISTRIBUITE
Java
Tehnologia Java
Platform
Limbaj de programare
Limbajul de programare
Simplu, orientat obiect, distribuit, dinamic,
multifir, independent de arhitectur, portabil,
performan ridicat, robust, sigur
Java
package helloworldapp;
public class HelloWorldApp
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}