Νίκο καλησπέρα, θα ήθελα να ρωτήσω σχετικά με τη μέθοδο toString(),θα μπορούσαμε να τη δηλώσουμε στην βασική κλάση σαν string και να επιστρέφει μία null τιμή ή να την δηλώσουμε και αυτή σαν αφηρημένη.Πάντως δουλεύουνε και τα δύο.Η ένσταση μου είναι αν μπορούμε να δηλώσουμε την toString() σαν abstract;
Καλησπέρα Αντώνη,
η toString() ανήκει στην κλάση Object από την οποία κληρονομούν όλες οι κλάσεις στη Java και δεν έχει νόημα να τη δηλώσεις ως αφηρημένη. Θα πρέπει να επιστρέφει το όνομα της κλάσης και για την Empoloyee, δηλαδή να έχει υλοποίηση και για την κλάση αυτή.
η toString() ανήκει στην κλάση Object από την οποία κληρονομούν όλες οι κλάσεις στη Java και δεν έχει νόημα να τη δηλώσεις ως αφηρημένη. Θα πρέπει να επιστρέφει το όνομα της κλάσης και για την Empoloyee, δηλαδή να έχει υλοποίηση και για την κλάση αυτή.
Καλησπέρα και απο εμένα..
έχω και εγω μια απορία επάνω στην toString , στην σελ.του βιβλίου 372 δείχνει πως να ορίζουμε την toString ως αναπαράσταση του αντικειμένου της κλάσης.
Αυτός εινια ο τρόπος και για την άσκηση η αναπαράσταση του αντικειμένου ?
Και αν ναι χρησιμοποιούμε τη συνταξη return String.format() ?
έχω και εγω μια απορία επάνω στην toString , στην σελ.του βιβλίου 372 δείχνει πως να ορίζουμε την toString ως αναπαράσταση του αντικειμένου της κλάσης.
Αυτός εινια ο τρόπος και για την άσκηση η αναπαράσταση του αντικειμένου ?
Και αν ναι χρησιμοποιούμε τη συνταξη return String.format() ?
Καλησπέρα Σάσα,
Για την εργασία θέλω η toString() να επιστρέφει το όνομα της κλάσης. Υπάρχουν διάφοροι τρόποι για να γίνει αυτό, όποιον κι αν χρησιμοποιήσετε θα είναι σωστός αρκεί να επιστρέφει ως αλφαριθμητικό το όνομα της κλάσης.
Για την εργασία θέλω η toString() να επιστρέφει το όνομα της κλάσης. Υπάρχουν διάφοροι τρόποι για να γίνει αυτό, όποιον κι αν χρησιμοποιήσετε θα είναι σωστός αρκεί να επιστρέφει ως αλφαριθμητικό το όνομα της κλάσης.
Καλησπέρα! Έχω και εγώ κάποιες ερωτήσεις σχετικά με την toString()... Είναι απαραίτητο να επιστρέφει το όνομα της κλάσης μαζί με το πακέτο στο οποίο περιέχεται ή χωρίς αυτό; Εφόσον δεν έχει νόημα να την δηλώσουμε ως αφηρημένη και πρέπει να επιστρέφει το όνομα της κλάσης και για την Employee, σε τι εξυπηρετεί η υλοποίησή της στις δύο υποκλάσεις;
Καλησπέρα Γιάννη,
η ονομασία του πακέτου δεν αναφέρεται πουθενά, ούτε στην εκφώνηση, ούτε ανέφερα εγώ κάτι τέτοιο σε κάποιο ποστ... μην μπερδεύεστε μόνοι σας!
Στην εκφώνηση αναφέρω ρητά πως θέλω να επιστρέφει το ονομα της κλάσης, τίποτα άλλο.
Σχετικά με το δεύτερο που ρωτάς, εξυπηρετεί στο ότι αν κληθεί από ένα αντικείμενο τύπου SalaryEmployee θα επιτρέψει SalaryEmployee ενώ από ένα αντικείμενο HourlyEmployee θα επιστρέψει HourlyEmployee.
η ονομασία του πακέτου δεν αναφέρεται πουθενά, ούτε στην εκφώνηση, ούτε ανέφερα εγώ κάτι τέτοιο σε κάποιο ποστ... μην μπερδεύεστε μόνοι σας!
Στην εκφώνηση αναφέρω ρητά πως θέλω να επιστρέφει το ονομα της κλάσης, τίποτα άλλο.
Σχετικά με το δεύτερο που ρωτάς, εξυπηρετεί στο ότι αν κληθεί από ένα αντικείμενο τύπου SalaryEmployee θα επιτρέψει SalaryEmployee ενώ από ένα αντικείμενο HourlyEmployee θα επιστρέψει HourlyEmployee.
Για το πακέτο ρωτάω γιατί αν προσπαθήσουμε να πάρουμε το όνομα της κλάσης π.χ. από τον getter της κλάσης Class της Java θα μας επιστρέψει κάτι τύπου packageName.className, οπότε εκτός από hardcoding αυτό που σκέφτομαι για να υλοποιηθεί κάτι τέτοιο χωρίς το όνομα του πακέτου μου φαίνεται λίγο τραβηγμένο. Η ερώτηση για το τι εξυπηρετεί αφορούσε πάλι την περίπτωση που δε θα ήταν το όνομα hardcoded. Τέλος πάντων, κατάλαβα. Ευχαριστώ!