Κλάσεις και αντικείμενα

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Αντικειμενοστραφής Προγραμματισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Εβδομάδα 2: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism]
Αντικείμενα, Κλάσεις και Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Σύγκριση Java και C++ Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής - Αλέξανδρος Χατζηγεωργίου, Νοέμβριος 2004.
ΣΥΝΑΡΤΗΣΕΙΣ.
Αντικειμενοστρεφής Προγραμματισμός ΚΛΑΣΕΙΣ ΙΙ. Υπερφόρτωση (Overloading) Όταν το ίδιο όνομα συνάρτησης (μεθόδου) χρησιμοποιείται για περισσότερες από.
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Υπερφόρτωση Τελεστών (Συνέχεια) Αντικειμενοστραφής Προγραμματισμός.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Μέθοδοι Μέθοδοι Δημιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων.
Βασικά στοιχεία της Java
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Αντικειμενοστραφής Προγραμματισμός Ι
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 – 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Οντοκεντρικός Προγραμματισμός
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού
Κατανεμημένα Συστήματα
Πίνακες και αλφαριθμητικά
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Wrapper Classes, Abstract Classes and Interfaces
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εξαιρέσεις [Exceptions]
Μεταγράφημα παρουσίασης:

Κλάσεις και αντικείμενα Java – Βοηθητικό Υλικό

Κλάσεις και αντικείμενα (1/2) Είναι μια γενική φόρμα για την κατασκευή αντικειμένων που έχουν παρόμοια χαρακτηριστικά Όλα τα αντικείμενα έχουν τα γενικά χαρακτηριστικά της κλάσης και το καθένα έχει και κάποιες ιδιαίτερες ιδιότητες Η java διαθέτει και τις δικές της κλάσεις αλλά και ο ίδιος ο χρήστης μπορεί να δημιουργήσει και τις δικές του

Κλάσεις και αντικείμενα (2/2) Δύο είναι τα στοιχεία που συμπεριλαμβάνονται στον ορισμό μιας κλάσης: Μεταβλητές Διαφοροποιούν το ένα αντικείμενο της κλάσης από το άλλο Μέθοδοι Καθορίζουν τι μπορούμε να κάνουμε στα αντικείμενα της κλάσης

Ορισμός κλάσης class myClass { }

1ο Παράδειγμα class Circle { static double Pi=3.14; static int count=0; double radius; double x; double y; } Μεταβλητές κλάσης: Pi, count Έχουν την ίδια τιμή από αντικείμενο σε αντικείμενο Μεταβλητές στιγμιοτύπου Radius,x,y Έχουν διαφορετική τιμή από αντικείμενο σε αντικείμενο

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

Παραδείγματα μεθόδων static int countCircle() { return count; } double area() return Pi*radius*radius;

This Κάθε μέθοδος στιγμιότυπου διαθέτει μια αναφορά με το όνομα this, η οποία αναφέρεται στο τρέχον αντικείμενο για το οποίο έχει κληθεί η μέθοδος Χρησιμοποιείται μόνο με τις μεθόδους στιγμιότυπου και όχι με τις μεθόδους κλάσης

Κατασκευαστές Ειδικές μέθοδοι που πρέπει να υπάρχουν στον ορισμό της κλάσης Ίδιο όνομα με αυτό της κλάσης Δίνει αρχικές τιμές στις μεταβλητές ενός νέου αντικειμένου Πραγματοποιεί όποιες ενέργειες χρειάζεται για να προετοιμαστεί σωστά το νέο αντικείμενο

Τι διαφοροποιεί τους κατασκευαστές από τις μεθόδους Δεν επιστρέφει ποτέ τιμή και δεν βάζουμε μπροστά του τύπο επιστροφής Έχει το ίδιο όνομα με την κλάση

2ο Παράδειγμα Circle (double r1, double x1, double y1) { radius=r1; x=x1; y=y1; ++count; }

Παρατηρήσεις Μπορεί να έχει όσους παραμέτρους θέλουμε Μια κλάση μπορεί να έχει περισσότερους από έναν κατασκευαστές καθένας από τους οποίους να έχει διαφορετική λίστα παραμέτρων Εάν δεν δημιουργήσουμε κατασκευαστή για μια κλάση, η Java δημιουργεί από μόνη της Ο κατασκευαστής αυτός δεν κάνει τίποτα

Δήλωση αντικειμένου Circle troxos;

Δημιουργία αντικειμένου troxos – new Circle (20.0, 3.0, 4.0); Δημιουργία ενός αντικειμένου της κλάσης Circle

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

Πολλαπλοί κατασκευαστές Ανάγκη δημιουργίας διαφορετικών αντικειμένων (διαφορετικά χαρακτηριστικά) Ίδιο όνομα Διαφορετική λίστα ορισμάτων

Παράδειγμα circle (double r2) { x=0.0; y=0.0; radius=r2; ++count; }

Βασική ιδέα αντικειμενοστραφούς προγραμματισμού Ενθυλάκωση Κληρονομικότητα Πολυμορφισμός

Ενθυλάκωση Παρουσιάζει την εξωτερική όψη ενός αντικειμένου Παρουσιάζει την εξωτερική όψη ενός αντικειμένου Αποκρύπτει την πολύπλοκη λογική που υπάρχει μέσα του Ο προγραμματιστής έχει τη δυνατότητα να τροποποιεί ή να βελτιώνει τους αλγόριθμους

Προσδιοριστές προσπέλασης Public Μπορούν να προσπελαστούν από οποιαδήποτε άλλη κλάση, όπου και αν βρίσκεται αυτή Private Προσπέλαση και χρήση μόνο από το ίδιο το αντικείμενο Protected Από όλες τις κλάσεις που βρίσκονται στο ίδιο πακέτο (συλλογή από κλάσεις, βιβλιοθήκη κώδικα)

Πολυμορφισμός Η ίδια μέθοδος ή ο ίδιος ο τελεστής χρησιμοποιείται με διαφορετικούς τύπους δεδομένων (+): συνένωση αλφαριθμητικών και τελεστής πρόσθεσης

Υπερφόρτωση κατασκευαστή Η κατάσταση στην οποία μπορούμε να έχουμε περισσότερους από έναν κατασκευαστές με το ίδιο όνομα αλλά με διαφορετικά ορίσματα Το ίδιο ισχύει και για τις μεθόδους

Υπογραφή κατασκευαστή Το όνομα του κάθε κατασκευαστή σε συνδυασμό με τον αριθμό, τον τύπο και τη σειρά των ορισμάτων του

Κληρονομικότητα Επαναχρησιμοποίηση κώδικα Ακολουθείται μια ιεραρχία Κάθε κλάση έχει μια υπερκλάση, η οποία βρίσκεται ιεραρχικά πάνω από αυτή Επίσης μπορεί να έχει μια ή περισσότερες υποκλάσεις οι οποίες βρίσκονται σε κατώτερο επίπεδο ιεραρχίας Στην κορυφή όλων των κλάσεων βρίσκεται η κλάση Object

Παράδειγμα class Car { string manufacturer; string model; int maximumSpeed; int price; int numDoors; int numWheels=4; } class motorCycle { string manufacturer; string model; int maximumSpeed; int price; int numWheels=2; }

Συνέχεια… class motorVehicle { string manufacturer; string model; int maximumSpeed; int price; int numWheels; } class Car extends motorVehicle { int numDoors; int numWheels=4; } class motorCycle extends motorVehicle int numWheels=2;

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