Documente Academic
Documente Profesional
Documente Cultură
Introducere LP si Java
Sintaxa de baza, tipuri de date, variabile
Expresii, Structuri , Metode, Recursivitate
Bazele programarii orientate pe obiect
Asocieri
Relatii de mostenire
Polimorfism
I/O in Java
Limbaje de programare
Limba= multime de simboluri pentru comunicare
si elementele folosite pentru a le manipula
Naturale(engleza, romana)
Artificiale (contruite) language
Limbaje formale-> Limbaje de programare
Paradigme de programare
Paradigma = multimea practicilor care definesc o
disciplina stiintifica la un moment dat
Stil fundamental de a scrie programe
Programare imperativa
Bazata pe modelul masinii, stare, CUM
Programare functionala
Evaluarea expresiilor
Programare logica
Inferente logice, logica predicatelor
Nivel de abstractizare
La nivelul masinii (intrerupatoare)
Limbaje de asamblare
Folosirea simbolurilor in loc de 1 si 0 pentru a descrie
instructiunile
Toate aspectele masinii sunt vizibile in program
O instructiune program pentru fiecare instructiune a masinii
Gestionarea explicita a detaliilor low-level (alocare registrii)
MOV AL, 61h ; Incarca reg AL cu nr 97 decimal (61 hex)
Alocare memorie
Copierea nr 0 la acea adresa in memorie
Facerea disponibila a adresei in memorie pentru
adresare de alte parti ale programului
Sistem de tipuri
Cum sunt clasificate valorile si expresiile in tipuri,
cum sunt manipulate si cum interactioneaza
Typed si untyped
Verifica daca operatiunea este aplicabila la acel tip de
data
Introducere in Java
Initial proiectata pentru programarea dispozitivelor de consum dar a
decolat odata cu dezvoltarea Internetului
Sigur si portabil
Limbajul este relativ simplu dar contine un numar vast de pachete
de librarii
Caracteristici Java
Eliminarea gestionarii manuale a memoriei si
eliminarea aritmeticii pointerilor
Introducerea vectorilor ca tip de date separat
Simplificarea mostenirii, eliminare mostenirii
multiple inlocuita cu notiunea de interfata
Orientat pe obiect
Distribuit, contine o librarie extinsa pentru
protocoale de comunicatii
Robust, pune accent pe gasirea timpurie a
erorilor
Securitate, evitarea accesului neautorizat la
resursele calculatorului sau modificarea
codului
Portabil
Phase 2
Editor
Compiler
Main Memory
Phase 3
Class Loader
Bytecode
memorie
este
incarcat
in
Main Memory
Verificarea securitatii
Phase 4
Bytecode
Main Memory
Phase 5
Bytecode
Workflow
Un program Java
public class FirstProgram {
Comment
Method Class
Method call
String
Un program este alcatuit din mai multe clase.
Fiecare aplicatie Java contine o clasa cu o metoda main. Cand aplicatia este pornita,
instructiunile din metoda main sunt executate
Clasele, metodele sunt organizate in blocuri delimitate de {}
O metoda e chemata prin specificarea obiectului de care apartine, numele metodei si
valorile parametrilor.
Sirurile de caractere ( string ) sunt delimitate de ghilimele duble
11
Tipuri si variabile
Orice valoare are un tip. This is a simple Java program! are tipul String iar
numarul 13 are tipul int.
Valorile sunt salvate pentru a fi folosite mai tarziu in variabile
O variabila este o locatie in memorie care are un tip, un nume si un continut
Ex:
String message = This is a simple Java program!";
PrintStream printer = System.out;
int luckyNumber = 13;
12
Tipuri de date
Tipuri primitive
int
short
long
4 bytes
2 bytes
8 bytes
-2.147.483.648 2.147.438.647
-32.768 32.767
-9.223.372.036.854.775.808L-9.223.372.036.854.775.807L
float
4 bytes
double 8 bytes
3,40282347E+38F
1,79769313486231570E+308
char
-32.768 32.767
2 bytes
array
class
interface
null
13
Simboluri
Identifier::= letter (letter+digit)*
letter::=(A-Z)+(a-z)+_+$
digit::=0-9
Literals
Operatori Java
Integer operators
Real operators
Unary (int)
++ -- + - ~
Unary (int)
++ --
Binary (int)
Binary (int)
+-*/%
Relational (bool)
Relational (bool)
Other
?: (Tip) * +**
Other
?: (Tip) * +**
Boolean operators
Assignments
= += -= *= /= %= &= |= ^=
15
Expresii
Expresie=descrierea unui calcul care produce o
valoare unica cu un tip bine definit
Operatori
Operanzi : variabile, constante, chemari de
metode (rezultat), expresii
Expresiile pot rezulta intr-o valoare primitiva:
Expresii numerice
Expresii booleene,
Expresii logice;
Precedenta si asociere
Operator type
Operators
Associativity
Postfix
right
Unary
right
Creation or cast
new (type)expr
right
Multiplicative
* / %
left
Additive
+-
left
Shift
left
Relational
left
Equality
== !=
left
Bitwise AND
&
left
Bitwise XOR
left
Bitwise OR
left
Conditional AND
&&
left
Conditional OR
||
left
Conditional
?:
left
Assignment
right
Sequence
left
Exemple
int a=5; System.out.print((a=2) + a);
int a,b; a=b=1;
int[] ar={1,2,3}; int index=2; ar[index]=index=1;
Expresii numerice
Operanzii sunt evaluati complet de la stanga la
dreapta inainte ca un operator sa fie aplicat
a+b*c;
+,- (unary)
*,/,%,+,*=,/=,%=,+=,-=
++,--
Bibliografie
C. Horstmann, G. Cornell, Core Java 2
K.Mughal, R. Rasmussen, Programmer's Guide to
Java SCJP Certification
http://docs.oracle.com/javase/tutorial/