java:generic_interfaces

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 | Παραμετρικοί τύποι δεδομένων με πολλές παραμέτρους ]] |
java/generic_interfaces.txt · Last modified: 2017/02/17 15:02 by gthanos