This shows you the differences between two versions of the page.
— |
java:generic_interfaces [2017/02/17 15:02] (current) gthanos created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Interfaces ως παραμετρικοί τύποι δεδομένων ====== | ||
+ | Εκτός από κλάσεις μπορούμε να ορίσουμε και διεπαφές ως παραμετρικούς τύπους. Το interface Stack που ορίζεται παρακάτω είναι ένα παράδειγμα παραμετρικού interface το οποίο προδιαγράφει τη λειτουργία της στοίβας. | ||
+ | |||
+ | <code java Stack.java> | ||
+ | interface Stack <T> { | ||
+ | public int size(); | ||
+ | public boolean isEmpty(); | ||
+ | public void push(T obj); | ||
+ | public T pop(); | ||
+ | public T top(); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Το interface δηλώνει ότι η στοίβα λαμβάνει ως όρισμα ένα τύπο δεδομένων που αντιστοιχεί στα αντικείμενα που αποθηκεύονται σε αυτή. | ||
+ | |||
+ | Άλλο παράδειγμα παραμετρικού interface είναι το [[https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html|java.lang.Comparable]] το οποίο δηλώνει τη μέθοδο [[http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo(T)|int compareTo(T o)]] με την οποία συγκρίνονται δύο αντικείμενα του ιδίου τύπου. Η μέθοδος compareTo χρησιμοποιείται από αλγορίθμους ταξινόμησης, αλλά και από δομές δεδομένων που αποθηκεύουν τα δεδομένα ταξινομημένα. Η παράμετρος Τ δηλώνει τον τύπο δεδομένων των δύο αντικειμένων που θα συγκριθούν. | ||
+ | |||
+ | <code java> | ||
+ | interface Comparable<T> { | ||
+ | int compareTo(T o) | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |Προηγούμενο: [[:java:generics| Παραμετρικοί τύποι δεδομένων ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generics_multiple_params | Παραμετρικοί τύποι δεδομένων με πολλές παραμέτρους ]] | |