java:generic_interfaces

Interfaces ως παραμετρικοί τύποι δεδομένων

Εκτός από κλάσεις μπορούμε να ορίσουμε και διεπαφές ως παραμετρικούς τύπους. Το interface Stack που ορίζεται παρακάτω είναι ένα παράδειγμα παραμετρικού interface το οποίο προδιαγράφει τη λειτουργία της στοίβας.

Stack.java
interface Stack <T> {
  public int size();
  public boolean isEmpty();
  public void push(T obj);
  public T pop();
  public T top();
}

Το interface δηλώνει ότι η στοίβα λαμβάνει ως όρισμα ένα τύπο δεδομένων που αντιστοιχεί στα αντικείμενα που αποθηκεύονται σε αυτή.

Άλλο παράδειγμα παραμετρικού interface είναι το java.lang.Comparable το οποίο δηλώνει τη μέθοδο int compareTo(T o) με την οποία συγκρίνονται δύο αντικείμενα του ιδίου τύπου. Η μέθοδος compareTo χρησιμοποιείται από αλγορίθμους ταξινόμησης, αλλά και από δομές δεδομένων που αποθηκεύουν τα δεδομένα ταξινομημένα. Η παράμετρος Τ δηλώνει τον τύπο δεδομένων των δύο αντικειμένων που θα συγκριθούν.

interface Comparable<T> {
  int compareTo(T o)
}
java/generic_interfaces.txt · Last modified: 2017/02/17 15:02 by gthanos