Sunteți pe pagina 1din 21

Cuprins curs

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

Folosite pentru a comunica instructiuni


calculatorului

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 orientata pe obiect


Programare cu tipuri de date

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)

Limbaje de programare de nivel inalt(FORTRAN,


LISP, COBOL)
http://amturing.acm.org/lectures.cfm

Limbaje de nivel inalt


Programatorul scrie operatii complexe care sunt
traduse in multe operatii simple
int sum = 0;

corespunde la urmatoarele operatii la nivel


masina:

Alocare memorie
Copierea nr 0 la acea adresa in memorie
Facerea disponibila a adresei in memorie pentru
adresare de alte parti ale programului

Un fisier sursa este un fisier text care contine


instructiunile scrise in limbaj de nivel inalt care
este apoi tradus in limbaj masina de alt
program.
Compilare
Interpretare

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

Tipizare statica si dinamica


Determina tipul la rulare sau la compilare

Tipizare slaba si puternica


Trateaza valoarea unui tip ca valoarea altui tip

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

Mediu de dezvoltare Java


Phase 1

Phase 2

Programul este creat cu un editor si salvat


pe disc

Editor

Compilatorul Java creaza fisierul bytecode si il


salveaza pe disc

Compiler

Main Memory

Phase 3

Class Loader

Bytecode
memorie

este

incarcat

in

Main Memory

Verificarea securitatii
Phase 4

Bytecode

Main Memory
Phase 5

Bytecode

Interpretorul transforma bytecode in cod


masina care este executat pe procesor

Workflow

Un program Java
public class FirstProgram {

Comment

public static void main(String[] args) {


// Display a message on the screen

Method Class

System.out.println (This is a simple Java program!");


}
}

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;

Prin conventie numele variabilelor incep cu litera mica si clasele incep cu


litera mare

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

Tipuri referinta( Valoarea lor este un pointer catre


obiecte si vectori)

array
class
interface
null

13

Simboluri
Identifier::= letter (letter+digit)*
letter::=(A-Z)+(a-z)+_+$
digit::=0-9
Literals

integers: 57 -456 0x5A9F 0745 6894576123L


reals: 3.402F -45.89
boolean: true false
characters: f T 9 \u0A48 \110 \\ \n \f \t \ \
strings: This is a string 0123456789\n +

Operators: + - * / % & | ^ ~ && || ! < > <= >=


<< >> >>> = ? ++ -- == += -= *= /= %= &= |=
^= != <<= >>= >>>= . [ ] ( )
Separators: { } ; , :
Comments: /**/ //. /**..*/
14

Operatori Java
Integer operators

Real operators

Unary (int)

++ -- + - ~

Unary (int)

++ --

Binary (int)

+ - * / % & | ^ << >> >>>

Binary (int)

+-*/%

Relational (bool)

< > <= >= == !=

Relational (bool)

< > <= >= ++ !=

Other

?: (Tip) * +**

Other

?: (Tip) * +**

Boolean operators

& | ^ && || ! == != ?: +** String operators

Assignments

= += -= *= /= %= &= |= ^=

15

Procesarea sirurilor de caractere


int charAt(int index)
int compareTo(String otherString)
boolean endsWith(String suffix)
boolean equals(Object otherObject)
boolean equalsIgnoreCase(String otherString)
int indexOf(String str)
int indexOf(String str, int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex)
int length()
String replace(char oldChar, char newChar)
boolean startsWith(String prefix)
String substring(int intialIndex)
String substring(int intialIndex,int finalIndex)
String toLowerCase()
String toUpperCase()
String trim()
16

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;

Sau intr-un obiect

Precedenta si asociere
Operator type

Operators

Associativity

Postfix

[] . (parameters) expr++ expr--

right

Unary

++expr --expr +expr -expr ~ !

right

Creation or cast

new (type)expr

right

Multiplicative

* / %

left

Additive

+-

left

Shift

<< >> >>>

left

Relational

< > <= >= instanceof

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;

Scala expresiilor numerice


int overFlow=Integer.MAX_VALUE +1 // MIN_VALUE
1.0/0.0 Infinity
0.0/0.0 NaN

+,- (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/

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