Documente Academic
Documente Profesional
Documente Cultură
2021
Interfete.
Intr-o interfata, toate metodele declarate nu au implementare.
O interfata poate sa declare si constante.
O clasa ce implementeaza o interfata trebuie sa dea implementarea
la TOATE metodele declarate in interfata.
O clasa ce implementeaza o anumita interfata specifica prin cuvantul cheie
implements.
Interfata generalizeaza conceptul de clasa abstracta.
Nu are nicio legatura cu interfata grafica !
Ex:
interfata ActionListener folosita in programarea grafica in Java, declara
o singura metoda: public void actionPerformed(ActionEvent ev)
O clasa ce implementeaza interfata ActionListener , obligatoriu va da implementarea
metodei actionPerformed().
Putem defini o interfata folosind cuvantul cheie interface.
Exemplu
Definim interfata Forma in care declaram doua semnaturi de metode: perimetru() si
arie()
interface Forma{
public double perimetru();
public double arie();
}
class Test{
public static void main(String args[]){
Patrat p=new Patrat(9);
System.out.println("arie="+p.arie());
Cerc c=new Cerc(7);
System.out.println("arie cerc="+c.arie());
}
}
COLECTII
O colectie este un obiect , grup pentru alte obiecte.
La vectori (vectorii intrinseci), o data stabilita dimensiunea, NU
o putem depasi.
Ex:
int a[]=new int[3];
a[0]=1; a[1]=0; a[2]=6;
a[3]=7;//EROARE !
La o colectie (grup de obiecte) nu se stabileste de la inceput dimensiunea
grupului, deci putem
adauga ulterior cate obiecte sunt necesare.
O alta diferenta intre vectori si colectii : vectorul poate contine obiecte , dar
sunt si vectori ce contin date de tipuri primitive (int, double,...)
Colectiile nu pot contine date de tripuri primitive, doar obiecte.
Daca o colectie de date de tipul int ? Nu se poate asa, dar, putem folosi
obiecte din clasa Integer (o clasa wrapper -"ambalaj" pentru tipul int).
ex:
int nr=7;
Integer obj=new Integer(7);
Interfata Collection
Este cea mai generala interfata pt colectii. Ea modeleaza
un grup de obiecte (elemente).
Cateva metode declarate in interfata Collection:
public int size()
Returneaza nr de elemente din colectie
Iterator iterator()
returneaza un obiect de tip Iterator folosit pt parcurgerea colectiei.
etc.
Nicio clasa din JDK nu implementeaza aceasta interfata.
Interfata Collection este folosita pt a fi mostenita de interfata List si Set.
Interfata List
- extinde interfata Collection
Este folosita pt a modela un grup de elemente indexate.
In grup , obiectele se pot repeta
Metode din interfta List:
Object get(int index)
returneaza obiectul de pe pozitia index din grup
Interfata Set
modeleaza o multime de obiecte ( nu pot aparea dubluri)
PARCURGEREA COLECTIILOR
Cea mai generala parcurgere: parcurgerea cu iteratori.
Interfata Iterator declara 3 metode:
boolean hasNext()
Object next()
Returneaza obiectul urmator din colectie
void remove()
pt eliminarea unui obiect din colectie
....
Exista mai multi algoritmi folositi pt prelucrarea colectiilor (ex: daca vrem sa
sortam ).
Acestia sunt metode statice in clasa Collections.
Ex:
public static void sort(Collection c)
Ex:
public static void shuffle(Collection c)
amesteca aleator elementele colectiei
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;