Programare in Java, Teorie OOP.
Programare in Java, Teorie OOP.
Concepte importante:
Abstratizare (Clase)
Incapsulare
Agregare
Mostenire
Polimorfism
2.Ce e POO?
Modelarea obiectelor din viata reala in programare
3.De ce contruim aplicatii folosind POO?
Clasificam in mod natural obiectele in tipuri.
Folosind POO in dezvoltarea software vom obtine aplicatii mai usor de intretinut, mai scalabile si
mai usor de refolosit
In ce mod este diferita abordarea OPP de programarea clasica?
Aplicatia este descompusa in tipuri de date abstracte prin identificarea unor entitati
Un tip de data abstract contine date si defineste modul in care aceste date pot fi folosite
4.Programare Procedurala si Programare Orientata Obiect
Unitatea de baza in programarea procedura este functia, in programarea orientataobiect este clasa.
Programarea procedurala se concentreaza pe construirea de functii, pe cand POO
porneste de la definirea claselor si apoi defineste metode (functii) si membrii (variabile)
Programarea procedurala separa datele de operatii, pe cand POO se concentreaza pe
ambele aspecte.
5. Conceptele de Clasa si Obiect
Clasa este un sablon. Defineste variabile si metode pe care le suporta obiectul.
Object este o instanta a clasei. Fiecare obiect are la baza o clasa care defineste datele si
comportamentul lor.
6. Membrii unei clase
O clasa are 3 tipuri de membrii:
campuri: variabile care arata starea unei clase sau a unui obiect
metode: functii care permit schimbarea starii obiectului sau accesul la valoarea unui
camp
clase si interfete imbricate
7. Declarea membrilor unei clase
tip_data numeMembru; sau
tip_data numeMembru = val_initiala;
Tipuri de data
boolean, char, byte, short, int, long, float, double
Modificatori optionali
modificatori de acces (public, private, protected)
static
final
8.Initializarea membrilor
Nu neaparat cu constante
Daca nu sunt initializati, se considera valoarea implicita in functie de tip
Tip
boolean
char
byte, short, int, long
float
double
object reference
Valoare initiala
false
\u0000
0
+0.0f
+0.0
null
9. Declararea metodelor
O metoda are 2 parti
Header Costa din: modificatori (optionali), tip de data returnat, numele metodei, lista de parametrii si
clauza throws (optional)
Corp
-O clasa poate avea mai mult de o metoda cu acelasi nume atat timp cat au lista de parametrii diferita.
10. Invocarea (apelarea) metodelor
Metodele sunt apelate ca operatii ale claselor sau obiectelor prin folosirea operatorului punct (.)
referinta.metoda(argumente)
Metode statice:
-In afara clasei: referinta poate fi sau un nume de clasa sau un obiect instantiat din clasa
-In cadrul unei clase: referinta poate fi omis
Metode nestatice:
-referinta trebuie sa fie un obiect instantiate
-Parametrii sunt trimisi prin valoare
-Cand parametrul este un obiect, se trimite referinta la obiectul respectiv, dar prin valoare (!!)
11. Metoda main
-Este punctul de intrare in program
-Masina virtuala localizeaza clasa in care se gaseste metoda main si incepe executia programului
- Alte metode sunt apelate din main implicit sau explicit
- Trebuie sa fie public, static si void
12. Modificatori de acces
- private: membrii pot fi accesati doar din interiorul clasei
-protected: membrii pot fi accesati in clasele din acelasi packet (vezi Pachete in Java), in subclase
(vezi Mostenirea claselor) sau in interiorul clasei
Supraincarcarea constructorilor
O clasa poate avea mai multi constructori atat timp cat lista de parametrii este diferita.
18. Folosirea lui this
-In cadrul unui constructor se poate folosi this pentru a apela un constructor deja existent. In mod
obligatoriu trebuie sa fie prima instructiune din constructor.
-this poate fi folosit si ca referinta la obiectul curent.
19.Pachete
Generalitati
Instructiunea import faciliteaza accesul doar la clasele din pachetul curent, nu si la clasele din
sub-pachete
In cazul metodelor statice este necesara folosirea numelui clasei
21.Crearea pachetelor