Δημοσιεύτηκε: 27 Μαρ 2012, 21:34
από giannosfor
Προσωπικά πιστεύω ότι το tutorial της sun είναι πολύ καλό αλλά όχι για κάποιο αρχάριο.
Γνώμη μου βρες κάποιο βιβλίο να σε εξοικειώσει με την έννοια της αντικειμενοστρέφειας ,και παράλληλα διάβαζε και το tutorial της sun.

Σαν θεωρία.
Στην αντικειμενοστρέφια τα πάντα αντιμετωπίζονται ως αντικείμενα.
Τι εννοώ.
Στο παράδειγμα σου αναφέρεις το παραλληλόγραμμο. Ξέχνα λίγο το κώδικα.
Το παραλληλόγραμμο από τι απαρτίζετε;Ποια είναι τα χαρακτηριστικά του;Από τι ορίζετε;

Από ένα σημείο , και από τις κάθετες και τις οριζόντιες γραμμές του.
Δηλαδή από το σημείο του παραλληλόγραμμου και το πλάτος και το μήκος μπορείς να ορίσεις ένα παραλληλόγραμμο.

Το σημείο από τι ορίζετε;
Στο καρτεσιανό από το τιμή του στο χ και y άξονα.

Άρα μάνι μάνι έχεις δύο αντικείμενα. Το παραλληλόγραμμο και το σημείο .
Το σημείο είναι ξεχωριστό αντικείμενο γιατί μπορεί να υπάρχει αυτόνομα ,μπορεί να χρησιμοποιηθεί για να
περιγράψεις ένα άλλο σχήμα , το κύκλο όπου θα είναι το κέντρο του.

Άλλα και το παραλληλόγραμμο μπορεί ,όπως και ένα είδος του παραλληλογράμμου που είναι το τετράγωνο.
Αλλά εκεί μιλάμε για άλλη σχέση ,την κληρονομικότητα ,που είναι άλλο μάθημα.

Στο κώδικα τώρα.
Στις κλάσεις ορίζεις τα δεδομένα και τις μεθόδους , δηλαδή τα states όπως λες και τα behaviors.
Εμένα ποτέ δε μου άρεσαν αυτοί οι ορισμοί αλλά είναι η θεωρία και χρησιμοποιούνται.
Σε μία κλάση και κατ επέκταση στο αντικείμενο έχεις μεταβλητές οι οποίες θα κρατάνε πληροφορίες
και μεθόδους οι οποίες θα πράττουν διαδικασίες πιθανότατα με τα δεδομένα δηλαδή με τις μεταβλητές
του ίδιου του αντικειμένου.

Δηλαδή στις περισσότερες των περιπτώσεων θα χρησιμοποιείς τις μεθόδους μίας κλάσεις για να επεξεργαστείς
τα δεδομένα της ίδιας τη κλάσης.Ας το πω καλύτερα του αντικειμένου που δημιουργεί η κλάση.
Και αυτή είναι η βασική διαφορά της συνάρτησης με την μέθοδο.

Στο παράδειγμα δημιουργεί ένα αντικείμενο Rectangle και του περνάει σαν παράμετρο σε αυτό που λέμε
constructor ένα καινούργιο αντικείμενο Point.
Αυτό συνάγει με αυτά που είπαμε και στη θεωρία ότι ένα παραλληλόγραμμο πρέπει να έχει ένα σημείο
αναφοράς ώστε να ορίζεται.
Και του το περνάμε με αυτό το τρόπο.

Τώρα αν δεν έχεις ξεκαθαρίσει τι είναι κλάση.Θα πρέπει να διαβάσεις περισσότερο και πιθανότατα από άλλες
πηγές για να πάρεις μία ιδέα και πάλι εδώ ήμαστε.

Σε γενικές γραμμές και πάλι πολύ θεωρητικά είναι ένα σχεδιάγραμμα ώστε όπου όταν δεσμεύσεις χώρο στη μνήμη
σου να πάρει αυτό το σχήμα.

Δε ξέρω αν σε μπέρδεψα περισσότερο άλλα έτσι είναι η θεωρία, μπερδευτική.
Σκέψου ότι θέλεις μία συνταγή ώστε να κάνεις πολλά παραλληλόγραμμα αλλά δε θες το κάθε παραλληλόγραμμο να
έχει το ίδιο πλάτος και μήκος και να βρίσκεται στο ίδιο σημείο θες να είναι αυτόνομα.
Έτσι ορίζεις το καθένα να έχει δικό του μήκος και πλάτος και όταν ζητήσεις το εμβαδό του ενούς παραλληλογράμμου
να υπολογίσει τα δικά του στοιχεία και όχι κάποιου άλλου ,εναποθέτεις την ευθύνη στο αντικείμενο να υπολογίσει
τα στοιχεία του εαυτού του όχι εσύ περνώντας παραμέτρους.