Φωτογραφία Παναγιώτης Μουτάφης
Εργασία - εμφάνιση του ονόματος της της κλάσης
από Παναγιώτης Μουτάφης - Friday, 14 May 2010, 10:28 AM
 
Πως γίνεται αυτό, δεν μου θυμίζει κάτι απ' αυτά που έχουμε κάνει. Δηλαδή υπάρχει κάποια ειδική εντολή που να εμφανίζει το όνομα της εκάστοτε κλάσης (πχ print(class.Name) )  ή θα το γράψουμε με το χέρι σε κάθε κλάση ξεχωριστά (πχ στην HourlyEmployee θα γράψω print("HourlyEmployee") κ.ο.κ.)

Και κάτι άλλο, στον default constructor της υποκλάσης βάζουμε και εκεί super ;
 
Φωτογραφία Νικόλαος Πανάγος
Απάντηση: Εργασία - εμφάνιση του ονόματος της της κλάσης
από Νικόλαος Πανάγος - Friday, 14 May 2010, 12:37 PM
 
Το πρώτο που ρωτάς γίνεται με 2 τρόπους, ένας από τους  οποίους είναι αυτός που περιγράφεις και που είναι απόλυτα σωστός. Απλά η μέθοδος σου λέει πως επιστρέφει το όνομα της κλάσης, όχι πως το τυπώνει στην κονσόλα.

Για το δεύτερο τώρα, αν δεν το γράψεις εσύ ρητά, θα το βάλει ούτως ή άλλως ο compiler.

ΝΠ
Φωτογραφία Παναγιώτης Μουτάφης
Απάντηση: Εργασία - εμφάνιση του ονόματος της της κλάσης
από Παναγιώτης Μουτάφης - Friday, 14 May 2010, 1:01 PM
 
Δηλαδή, πιο συγκεκριμένα:

1) για την κλάση HourlyEmployee π.χ. να γράψω :

public String toString() {
        return String HourlyEmployee.Name;
}

(Το συγκεκριμένο πάντως το παίρνει σαν λάθος)

2) δηλαδή στον default compiler της υποκλάσης βάζουμε super() ή super( μεταβλητές μέλη υπερκλάσης) ;
Φωτογραφία Νικόλαος Πανάγος
Απάντηση: Εργασία - εμφάνιση του ονόματος της της κλάσης
από Νικόλαος Πανάγος - Friday, 14 May 2010, 3:51 PM
 
Ναι, δεν είναι σωστά γραμμένο, το πιο εύκολο είναι να γράψεις return "HourlyEmployee";

Για το 2, το πρώτο θα το έβαζες στον default constructor της παράγωγης (αν και θα το βάλει ουτως ή άλλως ο compiler αλλά είναι καλύτερο να γραφουμε εμείς), το δεύτερο θα το δεύτερο θα το έγραφες στον constructor που αρχικοποιεί με τιμές τις μεταβλητές μέλη.

ΝΠ
Φωτογραφία Παναγιώτης Μουτάφης
Απάντηση: Εργασία - εμφάνιση του ονόματος της της κλάσης
από Παναγιώτης Μουτάφης - Friday, 14 May 2010, 4:03 PM
 
Thanks.

Ψάχνοντας λίγο για την toString βρήκα ότι άμα γράφω το εξής:

public String toString() {
        return getClass().toString();
}

μου βγάζει έξοδο:

class unit05.ergasies.HourlyEmployee Παπαδόπουλος : 297,0 Ευρώ

δηλαδή το πλήρες path με τα packages.
Φωτογραφία Νικόλαος Πανάγος
Απάντηση: Εργασία - εμφάνιση του ονόματος της της κλάσης
από Νικόλαος Πανάγος - Friday, 14 May 2010, 5:20 PM
 
Υπάρχει κι άλλος τρόπος, μια μέθοδος που κάνει ακριβώς αυτό που θέλουμε, επιστρέφει δηλαδή το όνομα της κλάσης μόνο ως αλφαριθμητικό. Αν έχεις χρόνο και θες να το ψάξεις ακόμα λίγο, σίγουρα θα την βρεις.

ΝΠ