java:generic_interfaces

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
java:generic_interfaces [2018/04/15 06:59]
java:generic_interfaces [2018/04/15 07:58]
gthanos
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<T>]] το οποίο δηλώνει τη μέθοδο [[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: 2018/04/15 06:59 (external edit)