demeterRG480 Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 Αρχικα καλησπερα στην ομαδα.. Eχω μια ασκηση που λεει οτι: Υπαρχει ενα υποσύστημα το οποιο ειναι μερος ενος γενικου διαχειριστή Βιβλιοθήκης, που ασχολειται με την αναζήτησης βιβλιογραφίας. Το υποσύστημα αναζήτησης βιβλιογραφίας πρέπει να παρέχει μια διεπαφή στον έξω κόσμο. Η οποία λαμβάνει μια σειρά απο keywords, ημερομηνία δημοσίευσης ή και ISBN και επιστρέφει τα σχετικά βιβλία που ειναι διαθεσιμα. Καθορίστε τέσσερις πιθανές κλήσης διεπαφων σε Java. Θα μπορουσε καποιος να δωσει καμια ιδεα. Η και γενικοτερα τι τρεχει με τις διεπαφες στη java? Ευχαριστώ εκ των προτέρων
GReaperEx Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 Τα interface στη Java είναι διεπαφές που μπορεί να έχει ένα αντικείμενο για κάτι. Πχ, τελείως υποθετικά, αν θες ένα αντικείμενο να είναι εκτυπώσιμο, το κάνεις να υλοποιεί την διεπαφή 'Printable' ή κάτι παρόμοιο. Έτσι, όταν μια ανώτερη μέθοδος θελήσει να εκτυπώσει όλα τα Printable αντικείμενα της, αυτό γίνεται πολύ εύκολα.
demeterRG480 Δημοσ. 6 Δεκεμβρίου 2017 Μέλος Δημοσ. 6 Δεκεμβρίου 2017 Αρχικα ευχαριστω για το σχολιο. οκ αυτο που λες...Αν για παραδειγμα μια μεθοδος υλοποιει μια διεπαφη υπαρχουν διαφορετικη τροποι να γινει αυτο? η εχει να κανει με την συνταξη της μεθοδου? γιατι η ασκηση μου ζηταει τέσσερις πιθανές κλήσης διεπαφων..
Επισκέπτης Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 Καταρχάς είσαι σίγουρος ότι ως διεπαφή εννοεί το Java Interface και όχι UI (πχ Swing?)
Επισκέπτης Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 public interface IBookSearch { public Book Book(String[] keywords); public Book Book(Date publicationDate); public Book Book(String ISBN); public Book Book(String[] keywords, Date publicationDate, String ISBN); } Κάτι τέτοιο περίπου;
GReaperEx Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 Αν για παραδειγμα μια μεθοδος υλοποιει μια διεπαφη υπαρχουν διαφορετικη τροποι να γινει αυτο? η εχει να κανει με την συνταξη της μεθοδου? Ένα interface παρέχει τα ονόματα των μεθόδων και μια κλάση πρέπει να τις υλοποιήσει: public interface Bicycle { // wheel revolutions per minute public void changeCadence(int newValue); public void changeGear(int newValue); public void speedUp(int increment); public void applyBrakes(int decrement); } public class ACMEBicycle implements Bicycle { ....... public void changeCadence(int newValue) { ....... } public void changeGear(int newValue) { ....... } public void speedUp(int increment) { ....... } public void applyBrakes(int decrement) { ....... } } Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει.
demeterRG480 Δημοσ. 6 Δεκεμβρίου 2017 Μέλος Δημοσ. 6 Δεκεμβρίου 2017 public interface IBookSearch { public Book Book(String[] keywords); public Book Book(Date publicationDate); public Book Book(String ISBN); public Book Book(String[] keywords, Date publicationDate, String ISBN); } Κάτι τέτοιο περίπου; ναι ναι.....κατι τετοιο αυτο θα εννοει με τις τέσσερις πιθανές κλήσης της διεπαφης.....ευχαριστω
demeterRG480 Δημοσ. 6 Δεκεμβρίου 2017 Μέλος Δημοσ. 6 Δεκεμβρίου 2017 Ένα interface παρέχει τα ονόματα των μεθόδων και μια κλάση πρέπει να τις υλοποιήσει: public interface Bicycle { // wheel revolutions per minute public void changeCadence(int newValue); public void changeGear(int newValue); public void speedUp(int increment); public void applyBrakes(int decrement); } public class ACMEBicycle implements Bicycle { ....... public void changeCadence(int newValue) { ....... } public void changeGear(int newValue) { ....... } public void speedUp(int increment) { ....... } public void applyBrakes(int decrement) { ....... } } Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει. μαλιστα.....αυτο βοηθησε παρα πολυ "Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει." τελειο ευχαριστω... Ένα interface παρέχει τα ονόματα των μεθόδων και μια κλάση πρέπει να τις υλοποιήσει: public interface Bicycle { // wheel revolutions per minute public void changeCadence(int newValue); public void changeGear(int newValue); public void speedUp(int increment); public void applyBrakes(int decrement); } public class ACMEBicycle implements Bicycle { ....... public void changeCadence(int newValue) { ....... } public void changeGear(int newValue) { ....... } public void speedUp(int increment) { ....... } public void applyBrakes(int decrement) { ....... } } Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει. μαλιστα.....αυτο βοηθησε παρα πολυ "Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει." τελειο ευχαριστω... Ένα interface παρέχει τα ονόματα των μεθόδων και μια κλάση πρέπει να τις υλοποιήσει: public interface Bicycle { // wheel revolutions per minute public void changeCadence(int newValue); public void changeGear(int newValue); public void speedUp(int increment); public void applyBrakes(int decrement); } public class ACMEBicycle implements Bicycle { ....... public void changeCadence(int newValue) { ....... } public void changeGear(int newValue) { ....... } public void speedUp(int increment) { ....... } public void applyBrakes(int decrement) { ....... } } Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει. μαλιστα.....αυτο βοηθησε παρα πολυ "Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει." τελειο ευχαριστω... Ένα interface παρέχει τα ονόματα των μεθόδων και μια κλάση πρέπει να τις υλοποιήσει: public interface Bicycle { // wheel revolutions per minute public void changeCadence(int newValue); public void changeGear(int newValue); public void speedUp(int increment); public void applyBrakes(int decrement); } public class ACMEBicycle implements Bicycle { ....... public void changeCadence(int newValue) { ....... } public void changeGear(int newValue) { ....... } public void speedUp(int increment) { ....... } public void applyBrakes(int decrement) { ....... } } Μια κλάση μπορεί να υλοποιήσει πολλαπλά interfaces αν θέλει. Αυτό καταλαβαίνω εγώ. συμφωνα με το σχολιο σου και με το σχολιο απο τον φιλο GReaperEx εκει καταληγω κι εγω....
Steftson Δημοσ. 12 Δεκεμβρίου 2017 Δημοσ. 12 Δεκεμβρίου 2017 Όπως ακριβώς απάντησαν και τα παιδιά παραπάνω. Σκεψου το interface σαν ενα συνολο ορισμών μεθόδων πχ: public interface SearchBook{ Book getBook(); } οι οποίες υλοποιούνται απο την κλάση που κανει implement το interface: public class BookActivity implements SearchBook @Override public Book getBook() { return book; } είτε σαν "μεταβλητές" μιας κλάσης που θελει να χρησιμοποιήσει τις μεθόδους του interface: private SearchBook searchBook = new SearchBook() { @Override public Book getBook() { return book; } }; Ετσι με αυτον τον τρόπο ενα interface μπορει να υλοποιείται απο διαφορετικές κλάσεις με διαφορετικό τρόπο σε κάθε μια. Things to remember : Ένα interface μπορει να κληρονομηθεί από ένα άλλο interface. Μια κλάση μπορεί να κάνει implement πολλά interface.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα