Φωτογραφία Νικόλαος Πανάγος
Απάντηση: constructors και αντικειμενα
από Νικόλαος Πανάγος - Sunday, 8 May 2011, 9:35 AM
 
Γιώργο ακριβώς! Αν δεν έχεις έστω έναν constructor στην κλάση σου δε θα είσαι σε θέση να δημιουργήσεις αντικείμενα π.χ. στην κεντρική σου μέθοδο και η κλάση σου δεν έχει νόημα. Γι αυτό ακριβώς υπάρχει αυτός ο μηχανισμός της Java που δημιουργεί αυτόματα τον default constructor αν δεν έχει οριστεί κάποιος άλλος από τον προγραμματιστή.
Για το δεύτερο που αναφέρεις, φυσικά αν έχεις τις getters/setters μπορείς να παραλείψεις τον constructor που αρχικοποιεί το αντικείμενο με τιμές, απλά είθισται να τους παρέχουμε και τους δύο ώστε να έχει τη δυνατότητα ο χρήστης να μπορεί να δημιουργήσει ένα αντικείμενο και να το αρχικοποιήσει κατά τη δημιουργία του.

Με αφορμή την ερώτησή σου θέλω να τονίσω σε όλους όσους δεν έχουν προτερη επαφή με τον αντικειμενοστρεφή προγραμματισμό πως για να κατανοήσετε αυτές τις έννοιες (και ειδικά της ενότητας που ακολουθεί) θα πρέπει να διαβάσετε τις αντίστοιχες ενότητες ξανά και ξανά και ξανά. Είναι απολύτως φυσιολογικό να μην τα καταλαβαίνετε με την πρώτη ανάγνωση, αυτά είναι πραγματάκια που χρειάζονται χρόνο και τριβή για να 'δέσουν' στο μυαλό σας.
Παρόλα αυτά, όπως σας τόνισα και στη συνάντηση που είχαμε, επειδή η Java είναι αμιγώς αντικειμενοστρεφής γλώσσα, το πόσο καλά έχετε καταλάβει τις αρχές αυτές καθορίζει και το τι μπορείτε να κάνετε με αυτήν.