Sunteți pe pagina 1din 35

Java

Programarea in limbajul Java


2004
Lecturer: Gavrila Cristian

Cuprins
I. Notiuni de programare orientata obiect
II. Organizarea claselor in pachete. Clase
fundamentale
III. Mostenirea claselor
IV. Clase abstracte si interfete
V. Polimorfismul
VI. Lucrul cu fisiere
VII.Tratarea exceptiilor
VIII.Colectii de obiecte
IX. Interfete grafice folosind AWT. Applet-uri
X. Fire de executie

Introducere : Cuprins
1. Limbaje de programare orientate obiect
2. Obiecte si clase de obiecte
3. Reprezentarea claselor de obiecte
4. Incapsularea
5. Relatii intre obiecte

Introducere : Limbaje de programare


Hardware

echipamentele fizice necesare


calculatorului pentru a executa un set de
instructiuni

Procesorul
Memoria
Componente si subansamble electronice

Software

instructiunile care controleaza


partea hardware

Sisteme de operare controleaza direct partea


hardware, ofera diverse servicii aplicatiilor
Aplicatii editoare de text, browsere internet,
jocuri
4

Introducere : Limbaje de programare


Programele contin instructiuni detaliate pentru a
controla partea hardware
Programele sunt scrise intr-un limbaj de
programare
Exista o multime de limbaje de programare
Alegerea unui limbaj de programare depinde de

Cunostintele programatorului
Uneltele disponibile pentru acel limbaj
Caracteristicile hardware
Tipul de problema pe care dorim sa o rezolvam

Singurul limbaj inteles de calculator este cod


masina (secventa de 0 si 1)
5

Introducere : Limbaje de programare


Clasificarea limbajelor de programare
Limbaje de nivel scazut

Asamblare

Limbaje de nivel inalt

Limbaje imperative

Limbaje obientate obiect

C, Pascal, FORTRAN, COBOL


C++, Java, C#, Smalltalk

Limbaje de nivel foarte inalt

Limbaje functionale

LISP

Limbaje declarative

Prolog

Introducere : Limbaje de programare


Orice program trebuie tradus in cod masina
Asamblare translatarea unui program din limbaj
de asamblare in cod masina
Compilare translatarea unui program dintr-un
limbaj de nivel inalt in cod masina
Interpretare translatarea unui program dintr-un
limbaj de nivel inalt in cod masina instructiune cu
instructiune, pe masura executiei
Linkeditare legarea unui program cod masina
de alte programe pe care le foloseste

Introducere : Limbaje de programare

Alfabet multimea tuturor simbolurilor folosite intrun limbaj

a, b, c, ..., 1, 2, 3, , ;, .

Lexic regulile de formare a cuvintelor unui limbaj

Cuvinte cheie for, if, class


Identificatori nume de variabile, functii, clase

Vocabular multimea tuturor cuvintelor unui limbaj


Sintaxa regulile de formare a propozitiilor unui
limbaj

if (conditie) then instructiuni1 else instructiuni2;

Limbaj multimea tuturor propozitiilor ce pot fi


formate
Semantica semnificatia propozitiilor limbajului

Introducere : Limbaje de programare


Limbajele de programarea au fost puternic
influentate de partea hardware a calculatorului.
Incepand cu limbajele de asamblare, apoi cu
FORTRAN, COBOL, ALGOL, C, etc, majoritatea
limbajelor de programare privesc programul ca o
insiruire de instructiuni, eventual grupate in functii
si biblioteci, fortand programatorul sa gandeasca in
termenii calculatorului.
Apare necesitatea unor limbaje de programare mai
generale, a caror model de rezolvare a problemelor
sa nu fie legat de partea hardware (arhitectura von
Neumann).
9

Introducere : Limbaje de programare


Programarea

orientata obiect

Impartirea problemei in componente


obiecte care indeplinesc anumite functii
Asamblarea aplicatiei din diferite
componente
Obiectele comunica prin trimiterea de
mesaje

10

Introducere : Ce este Java?


Java

este un limbaj de programare:

Orientat obiect
Portabil
Independent de arhitectura sistemului
Interpretat
Dinamic
Sigur
Robust
Performant
Distribuit
11

Introducere : Ce este Java?


Versiuni

Java:

1.0, 1.1, 1.2, 1.3, 1.4, 1.4.2


Versiunile incepand de la 1.2 se mai
numesc Java 2

Distributii

Java:

Java 2 Standard Edition (J2SE)


Java 2 Source Development Kit (J2SDK)

Java 2 Runtime Environment (J2RE)

Java 2 Enterprise Edition (J2EE)


Java 2 Micro Edition (J2ME)
12

Introducere: Cuprins
1. Limbaje de programare orientate obiect
2. Obiecte si clase de obiecte
3. Reprezentarea claselor de obiecte
4. Incapsularea
5. Relatii intre obiecte

13

Obiecte
(Def.) Obiect: orice entitate fizica sau abstracta
care are anumite trasaturi si asupra carora se pot
indrepta actiuni.
Orice obiect este definit prin doua lucruri:
- date, atribute
- comportament, metode
(Def.) Obiect: componenta a unui sistem software
care are o stare definita prin
atribute si un comportament definit prin metode.
14

Obiecte
Pentru

a descoperi continutul unui obiect


este util sa punem doua intrebari:

Ce stie obiectul (ce cunoaste) descoperim


datele, atributele obiectului
Ce stie sa faca obiectul descoperim
comportamentul, metodele obiectului

15

Clasele de obiecte
Obiectele pot fi grupate in clase.
A recunoaste un obiect inseamna a-l clasifica (a
descoperi din ce clasa face parte).
(Def.) Clasa de obiecte: defineste structura
(arhitectura, planul) obiectelor ce pot fi create din
acea clasa.
Obiectele sunt instante ale unor clase.
Nu exista obiecte fara clase.
16

Date

Localizarea datelor:

Stiva aici se tin variabilele locale definite in interiorul


unei metode; stiva este rapida dar presupune
cunoasterea exacta la compilare a dimensiunii
memoriei alocate si a timpului de viata al datelor
Heap aici se tin toate obiectele; nu este atat de
rapida ca stiva dar este mult mai flexibila
Zona statica aici se tin toate datele care vor fi
comune tuturor obiectelor folosind cuvantul cheie
static; datele tinute aici vor avea o adresa fixa
cunoscuta de toate obiectele
Zona constantelor aici se tin date care nu isi mai
pot schimba valoarea dupa initializare; se foloseste
cuvantul cheie final
17

Date

Date de obiect (date de instanta)

Sunt datele (atributele) normale


La crearea unui nou obiect, se aloca memorie pentru
toate atributele de obiect
Fiecare obiect are o copie a tuturor atributelor clasei
din care a fost creat
Datele de obiect apartin unui obiect si sunt tinute in
heap impreuna cu obiectele
Datele de obiect au aceasi durata de viata cu a
obiectelor de care apartin
Un obiect exista in memorie cata vreme exista cel
putin o referinta la el
Cand nu mai exista nici o referinta la un obiect, acel
obiect devine pregatit pentru stergere, dar nu va fi
sters imediat
18

Date

Datele de clasa (date statice)

Sunt atributele ce au cuvantul cheie static


Sunt date care apartin clasei nu obiectelor
Exista o singura copie a atributelor statice (de clasa)
care este folosita de toate obiectele create din acea
clasa
Daca un obiect modifica un atribut de clasa, toate
obiectele create din acea clasa vor vedea noua
valoare a atributului
Datele statice (de clasa) exista inainte de a fi creat
orice obiect, ele se creaza la incarcarea claselor (la
pornirea masinii virtuale Java)
Datele de clasa sunt tinute in zona statica de memorie
19

Date

Datele de metoda

Sunt variabile declarate in interiorul unor metoda


Sunt tinute pe stiva
Sunt sterse la iesirea din metoda sau din blocul cel
mai aproiat
Daca se creaza un obiect in interiorul unei metode,
obiectul este tinut in heap, dar referinta la obiect este o
variabila locala de metoda si este tinuta pe stiva, deci
va fi stearsa le terminarea metodei

Datele constante

Odata ce au fost initializate nu li se mai poate schimba


valoarea
Au cuvantul cheie final in declaratie
Sun tinute in zona constantelor

20

Metode

Metode constructor

Sunt metode speciale apelate atunci cand se creaza


un obiect
Metodele de tip constructor au exact acelasi nume cu
cel al clasei de obiecte si nu au tip de returnare (nici
macar void)
Orice clasa are cel putin un constructor
Daca nu declaram nici un constructor, compilatorul va
genera un constructor default (numit null constructor)
Daca declaram cel putin un constructor, compilatorul
nu va mai genera null constructor
Constructorii sunt folositi pentru initializarea datelor de
obiect
Pentru o clasa ce nu are nici un constructor public, nu
se pot crea obiecte din afara clasei
21

Metode
Metode

getter

Sunt metode de tipul


public int getNota()

Unde nota este un atribut de tip intreg

In mod normal atributele sunt private, iar pentru


a avea acces in mod controlat la atributele unui
obiect se folosesc metode getter

In mod normal pentru toate atributele private


care dorim sa poate fi citite din afara obiectului,
cream metode getter

22

Metode
Metode

setter

Sunt metode de tipul


public void setNota(int nota)

Unde nota este un atribut de tip intreg

In mod normal atributele sunt private, iar pentru


a modifica in mod controlat atributele unui
obiect se folosesc metode setter

In mod normal pentru toate atributele private


care dorim sa poate fi cscrise din afara
obiectului, cream metode setter

23

Metode
Metode

generale

Sunt toate celelalte tipuri de metode


Orice metoda primeste unele argumente si
returneaza un rezultat

Metodele

sunt in mod normal metode de


instanta (apartin unor obiecte)
Daca apare cuvantul cheie static in
declaratia metodei, atunci metoda este de
clasa (poate fi apelata fara a avea creat un
obiect de acea clasa)
24

Introducere: Cuprins
1.
2.
3.
4.
5.

Limbaje de programare orientate obiect


Obiecte si clase de obiecte
Reprezentarea claselor de obiecte
Incapsularea
Relatii intre obiecte

25

UML
In faza de proiectare a unei aplicatii
orientate obiecte, avem nevoie de niste
conventii pentru desenarea claselor.
UML Unified Modeling Language: este
limbajul vizual folosit pentru modelarea
sistemelor informatice
Descrie sistemele sub forma unor diagrame.
Pentru programarea orientata obiect, cea mai
importanta diagrama este diagrama de
clase.
26

UML : Diagrama de clase


O clasa este
reprezentata ca un
dreptunghi cu trei
zone care contin:
Numele clasei
Atributele clase
Metodele clasei

Animal
nume : String;
tip : String;
varsta : int;
getNume() : String;
setNume(nume : String) : void;
getTip() : String;

27

Introducere: Cuprins
1.
2.
3.
4.
5.

Limbaje de programare orientate obiect


Obiecte si clase de obiecte
Reprezentarea claselor de obiecte
Incapsularea
Relatii intre obiecte

28

Incapsularea

Incapsularea ne permite sa privim


obiectul ca pe o cutie neagra.
Prin incapsulare putem restrictiona sau
putem permite accesul altor obiecte
asupra atributelor sau metodelor unui
obiect.

29

Incapsularea
In

Java incapsularea se realizaza prin


urmatoarele cuvinte cheie care se pot aplica
atributelor sau metodelor:

public in UML + : orice alt obiect are acces


private in UML - : nici un alt obiect nu are
acces
protected in UML # : doar obiectele derivate
au acces
(default, package) in UML : doar
obiectele din acelasi pachet (director) au acces

30

Introducere: Cuprins
1.
2.
3.
4.
5.

Limbaje de programare orientate obiect


Obiecte si clase de obiecte
Reprezentarea claselor de obiecte
Incapsularea
Relatii intre obiecte

31

Relatii intre obiecte


Relatia

de dependenta:

Un obiect foloseste alt obiect (depinde de


alt obiect)
Este cea mai generala relatie intre obiecte
Celalalt obiect nu apare ca atribut al
primului ci e folosit doar in metode

Administrator

Cusca

32

Relatii intre obiecte


Relatia

de asociere:

Un obiect stie despre alt obiect


Nu exista relatie de incluziune intre
obiecte
Celalat obiect apare ca atribut al primului
obiect
Roluri si multiplicitate
Tara

Presedinte

33

Relatii intre obiecte


Relatia

de agregare:

Un obiect contine alt obiect


Al doilea obiect este un atribut al primului
obiect

Masina

Motor

34

Relatii intre obiecte


Relatia

de mostenire:

Un obiect este alt


obiect
Clasa de baza se mai
numeste clasa parinte
Clasa fiu mosteneste
atributele si metodele
clasei parinte
Clasa fiu poate adauga
atribute si metode noi
(extinde clasa de baza)

Mamifere

Feline

35

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