This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
|
java:interface_as_data_type [2017/03/31 13:26] gthanos |
java:interface_as_data_type [2017/03/31 13:31] gthanos |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| class SleepOnTimer { | class SleepOnTimer { | ||
| public static void main(String []args) { | public static void main(String []args) { | ||
| - | //Timer timer = new SimpleTimer(); | + | Timer timer = new SimpleTimer(); |
| - | Timer timer = new StartStopTimer(); | + | |
| System.out.println(new Date()); | System.out.println(new Date()); | ||
| sleepOnTimer(timer, 5); | sleepOnTimer(timer, 5); | ||
| Line 28: | Line 27: | ||
| <WRAP important 80% center round> | <WRAP important 80% center round> | ||
| - | Παρατηρήστε ότι η μέθοδος //invertArray// παίρνει ως 2ο όρισμα όχι το αντικείμενο μίας κλάσης αλλά ένα αντικείμενο τύπου interface //Stack//! Στην πραγματικότητα αυτό που δηλώνει η συγκεκριμένη μέθοδος είναι ότι ως 2ο όρισμα παίρνει ένα αντικείμενο του οποίου η κλάση υλοποιεί το interface //Stack//. Επίσης, δηλώνει ότι από όλες τις διαθέσιμες μεθόδους της κλάσης μπορούν να χρησιμοποιηθούν μόνο οι μέθοδοι που δηλώνονται στο interface. | + | Παρατηρήστε ότι η μέθοδος //sleepOnTimer// παίρνει ως 2ο όρισμα όχι το αντικείμενο μίας κλάσης αλλά ένα αντικείμενο τύπου interface //Timer//! Στην πραγματικότητα αυτό που δηλώνει η συγκεκριμένη μέθοδος είναι ότι ως 2ο όρισμα παίρνει ένα αντικείμενο του οποίου η κλάση υλοποιεί το interface //Timer//. Επίσης, δηλώνει ότι από όλες τις διαθέσιμες μεθόδους της κλάσης μπορούν να χρησιμοποιηθούν μόνο οι μέθοδοι που δηλώνονται στο interface Timer. |
| </WRAP> | </WRAP> | ||
| Line 34: | Line 33: | ||
| Στο παραπάνω πρόγραμμα, αλλάξτε την γραμμή | Στο παραπάνω πρόγραμμα, αλλάξτε την γραμμή | ||
| <code java> | <code java> | ||
| - | Stack stack = new ArrayStack(); | + | Timer timer = new SimpleTimer(); |
| </code> | </code> | ||
| σε | σε | ||
| <code java> | <code java> | ||
| - | Stack stack = new LinkedStack(); | + | Timer timer = new StartStopTimer(); |
| </code> | </code> | ||
| - | Παρατηρήστε αν σας βγάζει κάποιο μήνυμα ο //compiler// και εάν εκτελώντας το πρόγραμμα παράγεται το ίδιο τελικό αποτέλεσμα. Τι συμπέρασμα βγάζετε για τη χρήση της στοίβας από την μέθοδο //invertArray()//; | + | Παρατηρήστε εάν εκτελώντας το πρόγραμμα αυτό τερματίζει στον ίδιο χρόνο (5 sec); |
| </WRAP> | </WRAP> | ||
| - | | Προηγούμενο : [[ :java:interface_implementation | Υλοποίηση του interface ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interface_modification | Μεταβολή υφιστάμενου interface ]] | | + | | Προηγούμενο : [[ :java:interface_implementation | Υλοποίηση του interface ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:abstract_classes_vs_interfaces | Συγκρίνοντας Abstract Κλάσεις και Interfaces ]] | |