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 | Παραμετρικοί τύποι δεδομένων με πολλές παραμέτρους ]] | | ||