Documente Academic
Documente Profesional
Documente Cultură
Transmiterea paramentrilor
II. Constructori
Are aceeasi denumire ca si clasa ;
Nu intoarce nici o valoare ;
Are ca rezultat alocarea unei adrese ;
Are ca scop creearea obiectelor si initializarea datelor member(eventual alte operatii);
Daca nu se creeaza un constructor implicit, creeaza programul unul explicit;
Supraincarcarea :
- se poate face pe constructor si pe metode ;
- in toate variantele de supraincarcare ale unei metode se pastreaza aceeasi denumire a functiei;
- fiecare metoda(constructor) supraincarcata trebuie sa aiba o lista unica de argumente(ca numar
si/sau tipuri si/sau ordine de aparitie) ;
IV. Vectori
O variabila de tip vector contine o referinta (este un obiect); afirmatie valabila si cand este
vorba de vectori de primitive.
Alocarea lor de face explicit (de programator) cu « NEW » , sau implicit (in program)
mentionand componentele continute ;
Orice obiect de tip « vector » contine o data membra « length » care contine lungimea
vectorului ;
indexul fiind de la 0 la length-1.
V. Librarii
Libraria este un set de fisiere organizate intr-o structura ierarhica de directoare;
Utilizarea librariilor se face cu « import » Ex. import java.util.*
Reguli de creare :
Nume global – domeniul de internet ( asa se asigura unicitatea) ;
Nume specializat – nume proiect
Ex. package com.ibm.jdom
Public – clasa poate fi folosita de oriunde : din interiorul sau din exteriorul librariei.
Package (este specificator implicit)– are doua semnificatii :
Pentru exteriorul librariei este lafel ca « Private »
Pentru interiorul librariei este lafel ca « Public »
Daca o data membra sau o functie este de tip “package”, atunci pentru alte clase din aceeasi librarie
este ca si cum ar fi “public”, iar pentru alte clase din exteriorul librariei este ca si cum ar fi “private”.
Moştenirea: “extends”
Sintaxă:
class NumeClasaDerivata extends NumeClasaDeBaza {
// codul clasei derivate
Moştenire:
− în clasa derivată vor exista implicit datele membre şi metodele definite în clasa de bază (drepturile
de folosire a datelor / metodelor clasei de bază în clasa derivată sunt funcţie de specificatori)
− dacă clasa de bază nu are constructor fără parametri în constructorul clasei derivate trebuie făcut un
apel explicit către constructorul clasei de bază
− apelul din constructorul clasei derivate către constructorul cu parametri al clasei de bază se face
folosind “super”
− apelul din constructorul clasei derivate către constructorul cu parametri al clasei de bază trebuie sa
fie în prima linie (de cod) a constructorului clasei derivate
Metode abstracte:
- nu au decat prototip
- numele metodei este precedat de cuvantul cheie “abstract”
- casele derivate dintr-o clasa ce contine metode abstracte trebuie sa suprascrie obligatoriu acele
metode
Clase abstracte
- sunt precedate de cuvantul cheie “abstract”
- clasele care contin metode abstracte trebuie declarate abstracte
- clasele abstracte nu pot creea obiecte
- o clasa poate fi declarata abstracta chiar daca nu contine metode abstracte (scopul este de a creea
obiecte)
IX. Interfete
X. Mostenire multipla
Etapele prindere/tratare:
- Este cautata prima potrivire, primul bloc “catch” pentru care tipul exceptiei se potriveste cu tipul
obiectului exceptie aruncat;
- Este executat setul de intructiuni corespunzator blocului “catch” selectat (intructiunile corespunzatoare
celorlalte blocuri nu sunt executate).
Crearea exceptiilor:
Clauza “throws”:
- Blocurile “catch” de pe acelasi nivel cu blocurile in care se face rearuncarea sunt ignorate.
- Tratarea exceptiei rearuncate trebuie facuta la un nivel superior.
Clauza “finally”:
try{//.....
catch(Exceptie1 id1){......}
.......
finally{......} //intrunctiuni care se executa mereu
}
XII. Generice
Scopuri:
- Cresterea fiabilitatii;
- Cresterea vitezei de executie;
- Eliminarea erorilor la executie;
- Detectarea erorilor la compilare.
! Când se alocă un vector este necesară cunoaşterea de informaţii referitoare la tipul elementelor !