This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:interface_definition [2017/03/31 13:09] gthanos [Παράδειγμα interface - H Στοίβα (Stack)] |
java:interface_definition [2017/03/31 14:37] (current) gthanos [Παράδειγμα interface - H Στοίβα (Stack)] |
||
|---|---|---|---|
| Line 57: | Line 57: | ||
| ===== Παράδειγμα interface - H Στοίβα (Stack) ===== | ===== Παράδειγμα interface - H Στοίβα (Stack) ===== | ||
| - | Ας υποθέσουμε ότι θέλουμε να δηλώσουμε μέσω ενός //interface// τις μεθόδους που πρέπει να υποστηρίζει μία κλάση τύπου //Timer//. Ο //Timer// που ορίζουμε θα πρέπει να περιέχει κατ' ελάχιστο τις παρακάτω μεθόδους | + | Ας υποθέσουμε ότι θέλουμε να δηλώσουμε μέσω ενός interface της μεθόδους που πρέπει να υποστηρίζει μία στοίβα. Η στοίβα είναι μία δομή αποθήκευσης δεδομένων τύπου **Last In First Out (LIFO)**, όπου το αντικείμενο αποθηκεύεται |
| + | στη στοίβα τελευταίο εξάγεται από αυτή πρώτο. | ||
| - | * **setTimer:** Αρχικοποίηση της τιμής του //timer//. | + | Στο παρακάτω σχήμα δίνεται η γραφική απεικόνιση μιας στοίβας που αποθηκεύει ακέραιους αριθμούς. Αρχικά είναι αποθηκευμένο το 1 και στη συνέχεια αποθηκεύεονται τα 2,3,4,5,6. Παρατηρήστε ότι η σειρά με την οποία αφαιρούνται οι αριθμοί είναι η αντίστροφη δηλ 6,5,4,3,2,1. |
| - | * **startTimer:** Εκκίνηση του //timer//. | + | |
| - | * **stopTimer:** Διακοπή του //timer//. | + | |
| - | * **isRunning:** Έλεγχος εάν εκτελείται ο //timer//. | + | |
| - | * **hasExpired:** Έλεγχος εάν ο timer έχει τερματίσει. | + | |
| - | Παρακάτω δηλώνεται το //interface Timer// που υποστηρίζει τις παραπάνω λειτουργίες | + | {{ :java:lifo_stack.png? |Γραφική απεικόνιση μιας στοίβας που αποθηκεύει ακέραιους αριθμούς}} |
| - | <code java Timer.java> | + | |
| - | public interface Timer { | + | Κάθε στοίβα θα πρέπει να υποστηρίζει κατ' ελάχιστο τα εξής: |
| - | public void setTimer(int sec); | + | * μέθοδο επιστροφής του μεγέθους της στοίβας. |
| - | public boolean startTimer(); | + | * μέθοδο ένθεσης στην κορυφή της στοίβας. |
| - | public void stopTimer(); | + | * μέθοδο απόσβεσης του κορυφαίου στοιχείου. |
| - | public boolean isRunning(); | + | * μέθοδο επιστροφής του κορυφαίου στοιχείου της στοίβας χωρίς διαγραφή από τη στοίβα. |
| - | public boolean hasExpired(); | + | |
| + | Παρακάτω δηλώνεται το //interface Stack// που υποστηρίζει αυτές τις λειτουργίες | ||
| + | <code java Stack.java> | ||
| + | public interface Stack { | ||
| + | public int size(); // επιστροφή του μεγέθους της στοίβας. | ||
| + | public void push(Object o); // ένθεση στην κορυφή της στοίβας. | ||
| + | public Object pop(); // απόσβεση από την κορυφή της στοίβας. | ||
| + | public Object top(); // επιστροφή του κορυφαίου στοιχείου της στοίβας χωρίς διαγραφή του. | ||
| } | } | ||
| </code> | </code> | ||
| | Προηγούμενο : [[ :java:interface | Διεπαφή (interface) ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interface_implementation | Υλοποίηση του interface ]] | | | Προηγούμενο : [[ :java:interface | Διεπαφή (interface) ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interface_implementation | Υλοποίηση του interface ]] | | ||