This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:interface_implementation [2017/03/31 13:13] gthanos |
java:interface_implementation [2017/03/31 13:33] gthanos [StartStopTimer] |
||
---|---|---|---|
Line 5: | Line 5: | ||
Σε συνέχεια του προηγούμενου παραδείγματος θα επιχειρήσουμε να δημιουργήσουμε δύο διαφορετικές κλάσεις που υλοποιούν το συγκεκριμένο //interface//. Οι κλάσεις αυτές είναι **SimpleTimer** και **StartStopTimer**. Και οι δύο κλάσεις παρέχουν την ίδια λειτουργικότητα. | Σε συνέχεια του προηγούμενου παραδείγματος θα επιχειρήσουμε να δημιουργήσουμε δύο διαφορετικές κλάσεις που υλοποιούν το συγκεκριμένο //interface//. Οι κλάσεις αυτές είναι **SimpleTimer** και **StartStopTimer**. Και οι δύο κλάσεις παρέχουν την ίδια λειτουργικότητα. | ||
- | ==== SimpleTimer ==== | + | ===== SimpleTimer ===== |
<code java SimpleTimer.java> | <code java SimpleTimer.java> | ||
Line 18: | Line 18: | ||
public boolean startTimer() { | public boolean startTimer() { | ||
Date now = new Date(); | Date now = new Date(); | ||
- | //System.err.println("[startTimer] duration: "+duration); | ||
if(duration > 0) { | if(duration > 0) { | ||
start_time = now.getTime(); | start_time = now.getTime(); | ||
running = true; | running = true; | ||
- | //System.err.println("[startTimer] Running again!"); | ||
} | } | ||
else { | else { | ||
- | //System.err.println("[startTimer] Failed to start!"); | ||
running = false; | running = false; | ||
} | } | ||
Line 44: | Line 41: | ||
public boolean hasExpired() { | public boolean hasExpired() { | ||
Date now = new Date(); | Date now = new Date(); | ||
- | //System.err.println("[hasExpired] running: "+running); | ||
if( (running && now.getTime() - start_time >= duration) || duration <= 0 ) { | if( (running && now.getTime() - start_time >= duration) || duration <= 0 ) { | ||
start_time = 0L; | start_time = 0L; | ||
Line 110: | Line 106: | ||
Παραπάνω έχουμε υλοποιήσει το συγκεκριμένο //interface// μέσα από δύο διαφορετικές κλάσεις. Αν και η υλοποίηση των κλάσεων διαφέρει σημαντικά, η λειτουργικότητα που παρέχουν είναι ισοδύναμη. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από της δύο κλάσεις για να εξυπηρετήσετε τη λειτουργικότητα του //interface// **Timer** σε ένα πρόγραμμα. | Παραπάνω έχουμε υλοποιήσει το συγκεκριμένο //interface// μέσα από δύο διαφορετικές κλάσεις. Αν και η υλοποίηση των κλάσεων διαφέρει σημαντικά, η λειτουργικότητα που παρέχουν είναι ισοδύναμη. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από της δύο κλάσεις για να εξυπηρετήσετε τη λειτουργικότητα του //interface// **Timer** σε ένα πρόγραμμα. | ||
- | | Προηγούμενο : [[ :java:interface_implementation | Υλοποίηση του interface ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interface_as_data_type | Το interface ως τύπος δεδομένων ]] | | + | | Προηγούμενο : [[ java:interface_definition ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interface_as_data_type | Το interface ως τύπος δεδομένων ]] | |