01.
/**
02.
* Wykorzystanie typów generycznych
03.
* @author kodatnik.blogspot.com
04.
*/
05.
class
Pudelko <T> {
06.
// referencja do obiektu typu T
07.
private
T element;
08.
09.
// konstruktor klasy
10.
public
Pudelko(T element) {
11.
this
.element = element;
12.
}
13.
14.
// metoda zwraca referencję do przechowywanego elementu
15.
public
T pobierzElement() {
16.
return
element;
17.
}
18.
}
01.
public
class
TestPudelka {
02.
public
static
void
main(String args[]) {
03.
04.
// tworzymy trzy pudełka dla różnych typów danych (String, Integer oraz Double)
05.
Pudelko<String> p1 =
new
Pudelko<String>(
"Ala ma kota"
);
06.
Pudelko<Integer> p2 =
new
Pudelko<Integer>(
12
);
07.
Pudelko<Double> p3 =
new
Pudelko<Double>(
24.76
);
08.
09.
// sprawdzamy zawartość każdego pudełka
10.
System.out.println (p1.pobierzElement());
11.
12.
int
wartosc = p2.pobierzElement() +
3
;
13.
System.out.println (wartosc);
14.
15.
System.out.println (p3.pobierzElement());
16.
}
17.
}
Ala ma kota 15 24.76Większość klas dostarczanych z Javą wykorzystuje typy generyczne. Są to zazwyczaj klasy będące "pojemnikami" dla innych obiektów (tzw. kolekcje). Na przykład klasy LinkedList, Array, Stack, Vector, TreeMap itp.
Typy generyczne przeznaczone są tylko do typów obiektowych, nie można ich użyć do typów prymitywnych.
13 Komentarzy - Typy generyczne
Krótko i na temat :)
Super wpis :)
Pozdrawiam :)
pozdrawiam serdecznie i składam najserdeczniejsze podziekowania.
Konkretnie - dobrze, dzięki.
Myślę, że warto również wspomnięc o samym zapisie informującym o wystąpieniu typu generycznego.
Ogólnie praktycznie wszystko co jest poprawnym składniowo identyfikatorem z punktu widzenia javy może znaleźć się pomiędzy "<>". Przy czym warto moim zdaniem trzymać się pewnych konwencji które uczynią kod bardziej czytelnym.
I tak zapis (E - Element) informuje że klasa jest kolekcją zawierającą elementy () określonego typu.
Inną powszechnie stosowaną konwencją jest (T - typ) która mówi o typie, czyli czymś co nie jest elementem kolekcji.
Dla przytoczonego przykładu lepiej by było skorzystać z zapisu class Pudelko , co dodatkowo wnosi informację o klasie NIE BĘDĄCEJ listą i operującej na dowolnym typie.
@Łukasz: Masz całkowitą rację, poprawiłem. Gwoli wyjaśnienia jako identyfikatory typów generycznych wykorzystuje się zazwyczaj litery:
E - element (głównie w kolekcjach)
K - klucz
N - liczba
T - typ
V - wartość
S,U,V itd. - kolejne typy
Prosto i na temat. Brawo.
Oj, przydało się na programowanie, dzięki za konkretne wyjaśnienie na przykładach :)
Super, wielkie dzięki :D
Klasy Vector się już nie używa ;D.
Fajny ten post!
Ja tez lubię tworzyć strony www!
Ktoś tu ma talent do programowania!
teraz juz rozumiem
Podesłałam bloga chłopakowi ;)
dobrze wytłumaczone
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)