Video: Bazele programarii - C# - 7 - Clase si obiecte 2024
A clasa generică în Java este o clasă care poate funcționa pe un anumit tip specificat de programator la compilare timp. Pentru a realiza acest lucru, definiția clasei utilizează parametrul de tip s care acționează ca variabile care reprezintă tipuri (cum ar fi int sau String).
Pentru a crea o clasă generică, listați parametrul de tip după numele clasei în paranteze unghiulare. Parametrul de tip specifică un nume pe care îl puteți utiliza în întreaga clasă oriunde ați folosi altfel un tip. De exemplu, iată o versiune simplificată a declarației clasei pentru clasa ArrayList:
public class ArrayList
Am renunțat la extensii și implementează clauze pentru a vă concentra pe parametrul de tip formal:. Parametrul E specifică tipul elementelor care sunt stocate în listă.
Pentru a crea o instanță a unei clase generice, trebuie să furnizați tipul real care va fi folosit în locul parametrului de tip, cum ar fi:
ArrayList myArrayList;
Aici parametrul E este String, deci tipul elementului pentru această instanță a clasei ArrayList este String.
Acum uita-te la declarația pentru metoda add pentru clasa ArrayList:
public boolean add (E o) {// corp de metodă omis (mulțumesc)}
așteptați în mod normal să vedeți un tip de parametru, vedeți litera E. Astfel, această declarație de metodă specifică faptul că tipul pentru parametrul o este tipul specificat pentru parametrul tip E formal. Dacă E este String, metoda add acceptă numai obiecte String. Dacă apelați metoda de adăugare care trece altceva decât un parametru String, compilatorul va genera un mesaj de eroare.
De asemenea, puteți utiliza un parametru de tip ca tip de returnare. Iată declarația pentru metoda de obținere a clasei ArrayList:
public E get (int index) {// corp de metodă omis (sunteți binevenit)}
Aici E este specificat ca tip de returnare. Aceasta înseamnă că dacă E este String, această metodă returnează obiecte String.
Beneficiul cheie al produselor generice este acela că verificarea de tip se întâmplă la momentul compilării. Astfel, după ce specificați valoarea unui parametru de tip formal, compilatorul știe cum să efectueze verificarea de tip implicită de parametru. Așa știe că nu vă permite să adăugați obiecte String unei colecții de angajați.