Documente Academic
Documente Profesional
Documente Cultură
ro/clase-java/
JAVA , PROGRAMARE
Clase Java
AIRMAN · SEPTEMBER 25, 2019 · 4.8K VIEWS · 6 MINUTE READ
5
SHARES SHARE 5 TWEET MAIL SHARE SHARE
O clasa este de�nita pentru a descrie un nou tip de date. Dupa de�nirea clasei, aceasta poate �
utilizata pentru a crea obiecte de tipul respectiv. Deci, o clasa reprezinta un sablon pentru un
1 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
Dupa cum se poate observa, sintaxa de mai sus cuprinde o serie de termeni optionali:
• modi�catori_clasa: de�nesc aria de vizibilitate si drepturile de acces sau anumite caracteristici
ale clasei; pentru o clasa pot � utilizati urmatorii modi�catori: public, abstract, �nal;
• extends super_clasa: precizeaza clasa de baza (superclasa) pentru clasa de�nita; Java permite
doar mostenirea simpla, ceea ce inseamna ca o clasa poate avea doar un singur parinte;
• implements lista_interfete: listeaza interfetele care sunt implementate de noua clasa.
Corpul unei clase poate contine doua tipuri de elemente: date membre (atribute) si functii
membre (metode). Atributele si metodele de�nite intr-o clasa reprezinta membrii clasei.
Utilizarea modi�catorilor
Modi�catorii de vizibilitate si drepturi de acces sunt cuvinte cheie care precizeaza aria de
vizibilitate si drepturile de acces ale clientilor la membrii unei clase. Clienti pot � metodele sau
clasele care acceseaza din exterior un membru.
Modi�catorii au o arie larga de utilizare care poate cuprinde de�nitii de clase, atribute sau
metode. Urmatorii termeni pot � utilizati ca si modi�catori de vizibilitate: public, protected si
private.
Daca nu este precizat un modi�cator de vizibilitate pentru un membru, atunci acesta este
accesibil la nivelul pachetului din care face parte clasa in care acesta se gaseste.
Modi�catorul public utilizat in cadrul declaratiei unei clase face ca aceasta sa �e vizibila de
oriunde. Daca modi�catorul public precede declararea unei variabile sau a unei metode, acestea
sunt vizibile oriunde este vizibila clasa.
2 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
La nivelul membrilor unei clase poate � utilizat modi�catorul private, care stabileste
vizibilitatea membrilor numai in interiorul clasei in care sunt declarati.
Pentru declararea variabilelor de clasa (atribute statice) se poate utiliza un modi�cator special,
static. Variabilele declarate cu static sunt partajate de catre obiectele clasei. Daca modi�catorul
static apare in declaratia unei metode, vorbim despre metode de clasa, metode care pot �
apelate si fara a instantia obiecte ale clasei.
Un alt modi�cator care este utilizat in cazul membrilor unei clase este �nal. Variabilele
declarate cu �nal au o valoare constanta, care nu poate � modi�cata prin program. Atunci cand
o metoda este declarata cu modi�catorul �nal nici o alta clasa nu va putea suprade�ni metoda,
adica nu va putea � rede�nita intr-o subclasa.
O clasa care contine metode neimplementate poarta numele de clasa abstracta si se declara
utilizand modi�catorul abstract. Metodele abstracte (neimplementate) continute de o clasa
abstracta se declara folosind modi�catorul abstract.
3 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
Atributele reprezinta aspecte individuale care diferentiaza un obiect de altul si determina modul
de a�sare, starea sau calitatile unui obiect. Atributele din interiorul unei clase pot � statice si
non-statice.
Atributele statice sunt asociate clasei si sunt partajate de toate obiectele acesteia. Aceste
atribute pot � utilizate chiar si in situatia in care nu se instantiaza obiecte ale clasei. Se mai
numesc si variabile de clasa deoarece aceste atribute apartin clasei si nu unui obiect anume.
Pentru a declara o variabila de clasa trebuie utilizat modi�catorul static.
Atributele non-statice sau variabilele instanta reprezinta cel de-al doilea tip de atribute dintr-o
clasa. Fiecare instanta a unei clase va detine o copie a variabilelor instanta care sunt de�nite in
respectiva clasa. De asemenea, �ecare obiect va avea propriile valori pentru �ecare atribut non-
static.
1 class Cerc {
2
3 // variabila clasa
4 static final double PI = 3.14;
5 // variabile instanta
6 double x;
7 double y;
8 double raza;
9
10 }
4 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
Dupa cum se poate observa, declararea unei variabile are urmatoarea forma:
In functie de tipul modi�catorilor prezenti in declaratia unui atribut se poate preciza nivelul de
acces la acel atribut, tipul atributului (instanta, clasa) sau se poate stabili daca atributul este o
constanta (variabila �nala).
Metodele unei clase de�nesc comportamentul clasei respective. In mod similar atributelor,
intr-o clasa pot � de�nite doua tipuri de metode: statice sau metode clasa si non-statice sau
metode instanta.
Metodele statice se declara utilizand modi�catorul static si pot � apelate chiar si in cazul in care
nu au fost instantiate obiecte ale clasei. Deoarece acest tip de metode pot � executate si in
absenta obiectelor, ele nu vor � referite de variabile instanta. Metoda main() trebuie declarata
folosind modi�catorul static.
1 class Cerc {
2
3 static final double PI = 3.14;
4 static int count = 0;
5 double x;
6 double y;
7 double raza;
8
9 // metoda non-statica
10 public double aria() {
11 return PI * raza * raza;
12 }
13
14 // metoda statica
15 static int nrObiecte() {
16 return count;
17 }
18
19 }
5 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
Clauza throws este utilizata pentru declararea exceptiilor care pot rezulta in urma executiei unei
metode. Exceptiile reprezinta conditii care apar la rulare si necesita oprirea programului, �ind
tratate prin obiecte ale casei java.lang.Throwable.
Polimor�smul
Unul din principiile de baza in programarea orientata pe obiecte este polimor�smul.
Polimor�smul speci�ca situatia in care un nume se refera la doua metode diferite. Limbajul Java
permite de�nirea a doua tipuri de polimor�sm:
• tipul de supraincarcare;
• tipul de suprade�nire.
1 class Carte {
2
3 String titlu;
4 String autor;
5
6 Carte() {
7 titlu = " ";
8 autor = " ";
9 }
10 Carte(String titlu, String autor) {
11 this.titlu = titlu;
6 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
12 this.autor = autor;
13 }
14
15 void fisaCarte() {
16 System.out.println("Titlu: " + titlu);
17 System.out.println("Autor: " + autor);
18 }
19 void fisaCarte(int id) {
20 System.out.println("Id: " + id);
21 System.out.println("Titlu: " + titlu);
22 System.out.println("Autor: " + autor);
23 }
24 public static void main(String[] args) {
25 Carte c1 = new Carte("Morometii", "Marin Preda");
26 Carte c2 = new Carte("Fratii Jderi", "Mihail Sadoveanu");
27 c1.fisaCarte();
28 c1.fisaCarte(1);
29 c2.fisaCarte(2);
30 }
31
32 }
Cuvantul cheie this returneaza o referinta catre obiectul curent. In interiorul metodei
constructor this este utilizat pentru a face diferenta intre variabilele de instanta si variabilele
locale, deoarece acestea au aceeasi denumire.
this.titlu = titlu;
Polimor�smul de suprade�nire apare in momentul in care metoda unei clase are acelasi nume si
aceeasi semnatura cu o metoda din clasa de baza. Semnatura unei metode este data de numarul
parametrilor, tipul si ordinea acestora. Spunem ca metoda din clasa derivata suprade�neste
metoda din clasa de baza, daca numele si semnaturile metodelor coincid.
1 package ro.virtualcampus.person;
2
3 public class Persoana {
4
5 private String nume;
7 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
1 package ro.virtualcampus.person;
2
3 public class Student extends Persoana {
4
5 private double medie;
6 private String facultate;
7
8 public Student() {
9 super();
8 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
10 this.medie = 0.0;
11 this.facultate = null;
12 }
13 public Student(String nume, int varsta, double inaltime, double medie, String facultate
14 super(nume, varsta, inaltime);
15 this.medie = medie;
16 this.facultate = facultate;
17 }
18
19 public double getMedie() {
20 return medie;
21 }
22 public String getFacultate() {
23 return facultate;
24 }
25
26 @Override
27 public void sePrezinta() {
28 super.sePrezinta();
29 System.out.printf("Sunt student la facultatea %s.%n", getFacultate());
30 }
31 public void sePrezinta(String salut) {
32 System.out.printf("%s! ", salut);
33 this.sePrezinta();
34 }
35
36 }
1 package ro.virtualcampus.person;
2
3 class Aplicatie {
4
5 public static void main(String[] args) {
6 Persoana vp = new Persoana("Virgil Popescu", 45, 1.68);
7 Student db = new Student("Doria Banciu", 35, 1.67, 7.80, "ETTI");
8 vp.sePrezinta();
9 db.sePrezinta("Buna zua");
10 }
11
9 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
12 }
Aplicatie.java hosted with by GitHub
view raw
Prima etapa presupune declararea tipului de data pentru obiectul nou creat.
nume_clasa nume_obiect;
Cea de-a doua etapa este realizata prin intermediul operatorului de instantiere new. Operatorul
new aloca dinamic memorie pentru obiectul creat si returneaza o referinta catre acesta. Tot in
aceasta etapa este apelat unul din constructorii clasei, care initializeaza starea unui obiect
imediat dupa crearea sa.
Crearea unui obiect poate � realizata si intr-o singura linie de cod, de genul:
Constructorul este un tip special de metoda, care are acelasi nume ca si clasa in care este de�nit
si care nu are tip returnat. Metodele constructor sunt apelate in momentul in care sunt create
instante ale clasei. Daca nu este de�nita o metoda constructor pentru o clasa, compilatorul va
10 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
crea o astfel de metoda. Constructorul implicit nu are lista de parametri, iar corpul metodei este
vid. Rolul principal al constructorului este acela de a realiza initializarea variabilelor instanta ale
unui obiect, cand acesta este creat.
1 class Cerc {
2
3 static final double PI = 3.14;
4 static int count = 0;
5 int x;
6 int y;
7 int raza;
8
9 // metoda constructor 1
10 Cerc() {
11 x = 0;
12 y = 0;
13 raza = 0;
14 }
15 // metoda constructor 2
16 Cerc(int x0, int y0, int raza0) {
17 x = x0;
18 y = y0;
19 raza = raza0;
20 }
21
22 // metoda non-statica
23 public double aria() {
24 return PI * raza * raza;
25 }
26 // metoda statica
27 static int nrObiecte() {
28 return count;
29 }
30
31 public static void main(String[] args) {
32 Cerc c = new Cerc(2, 5, 4);
33 System.out.println(c.raza);
34 }
35
36 }
11 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
nume_obiect.atribut;
nume_obiect.nume_metoda();
Limbajul Java permite de�nirea de constructori multipli intr-o clasa, prin intermediul
polimor�smului. De exemplu, intr-o clasa care de�neste numere complexe putem utiliza un
constructor pentru a initializa partea reala si partea imaginara cu valoarea 0.0, si un alt
constructor care permite utilizatorului sa speci�ce valorile initiale pentru partea reala, respectiv
imaginara.
1 class Complex {
2
3 Complex() {
4 parteaReala = 0.0;
5 parteaImaginara = 0.0;
6 }
7 Complex(double real, double imag) {
8 parteaReala = real;
9 parteaImaginara = imag;
10 }
11
12 private double parteaReala;
13 private double parteaImaginara;
14
15 }
5
SHARES SHARE 5 TWEET MAIL SHARE SHARE
TAGS
#ABSTRACT #CLASS #CONSTRUCTOR #FIELD #FINAL #INSTANCE #METHOD #MODIFIERS
12 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
JAVA , PROGRAMARE
Tablouri Java
AIRMAN · SEPTEMBER 23, 2019
VEZI ARTICOL
JAVA , PROGRAMARE
VEZI ARTICOL
ARTICOLE SIMILARE
LEAVE A REPLY
YOUR EMAIL ADDRESS WILL NOT BE PUBLISHED. REQUIRED FIELDS ARE MARKED *
13 of 14 7/12/23, 07:40
Clase Java – UNCODED https://uncoded.ro/clase-java/
*
COMMENT
NAME *
EMAIL *
WEBSITE
SAVE MY NAME, EMAIL, AND WEBSITE IN THIS BROWSER FOR THE NEXT TIME I COMMENT.
POST COMMENT
© 2018 VIRTUALCAMPUS.RO
14 of 14 7/12/23, 07:40