nilosgr Δημοσ. 20 Οκτωβρίου 2011 Δημοσ. 20 Οκτωβρίου 2011 Και εάν o είναι ένας int; Ή ένας array; (στις απλές των περιπτώσεων) Δεν νομίζω ότι είναι καλή λύση αυτή που προτείνεις... Ποιος να ειναι int? Δε σε πιανω...
moukoublen Δημοσ. 20 Οκτωβρίου 2011 Δημοσ. 20 Οκτωβρίου 2011 Sorry, δεν καταλαβα καλα την ερωτηση... Τοτε κανε κατι τετοιο ισως... >public void Func(Object o) { this = new MyClass(o); } Ναι οκ, τεχνικά γίνεται. Αλλά δε είναι, κατ εμέ τουλάχιστον, καλή λύση να κατασκευάζεις επι της ουσίας νέο αντικείμενο κάθε φορά που θες να κάνεις μια αλλαγή στα στοιχεία. Τρομερά δαπανηρό και εν τέλη λάθος θα το χαρακτήριζα. pbp αν θες τη γνώμη μου δες το δεύτερο παράδειγμα που σου έδωσα και προσπάθησε να καταλάβεις σε τι εξυπηρετεί.
nilosgr Δημοσ. 20 Οκτωβρίου 2011 Δημοσ. 20 Οκτωβρίου 2011 Αλλά δε είναι, κατ εμέ τουλάχιστον, καλή λύση να κατασκευάζεις επι της ουσίας νέο αντικείμενο κάθε φορά που θες να κάνεις μια αλλαγή στα στοιχεία. Τρομερά δαπανηρό και εν τέλη λάθος θα το χαρακτήριζα. pbp αν θες τη γνώμη μου δες το δεύτερο παράδειγμα που σου έδωσα και προσπάθησε να καταλάβεις σε τι εξυπηρετεί. Συμφωνω, απλα απαντω στην ερωτηση του φιλου
nplatis Δημοσ. 22 Οκτωβρίου 2011 Δημοσ. 22 Οκτωβρίου 2011 Αυτό που ζητάει περιγράφεται καθαρά εδώ. Είναι κάτι σαν caching, και θα μπορούσε να είναι χρήσιμο, αν π.χ. ο υπολογισμός που θέλει είναι πολύπλοκος και δεν θα ήταν καλό να επαναλαμβάνεται κάθε φορά που θέλει να μάθει το αποτέλεσμά του. Η απάντηση εδώ είναι απόλυτα σωστή και μάλιστα (αν και δεν τονίζεται) η βοηθητική μέθοδος είναι private. Πάντως υπάρχει ακόμα μία περίπτωση κλήσης του constructor: μέσα από έναν άλλο constructor με χρήση της this(), μόνο που η κλήση πρέπει να είναι η πρώτη εντολή (όπως και για την super()). Δείτε εδώ.
panos18753 Δημοσ. 12 Δεκεμβρίου 2022 Δημοσ. 12 Δεκεμβρίου 2022 Στις 19/10/2011 στις 7:03 ΜΜ, pbp είπε Γεια σας, Μήπως μπορείτε να μου πείτε πως μπορώ να καλέσω τον κατασκευαστή μιας κλάσης μέσα στην ίδια του την κλάση, μέσω μιας μεθόδου?
Προτεινόμενες αναρτήσεις