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
Previous revision
java:generic_interfaces [2018/04/15 06:59]
java:generic_interfaces [2018/04/15 07:59]
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)