ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γλωσσική Τεχνολογία Object-Orientation in Python.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Αντικείμενα, Κλάσεις και Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Μέθοδοι Μέθοδοι Δημιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Wrapper Classes, Abstract Classes and Interfaces
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Πρότυπα Προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Swing II Εβδομάδα Νο. 6.
Προχωρημένος Προγραμματισμός
JAVA Basics Εβδομάδα Νο. 1.
JAVA – Basic OOP Principles
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Υπο-τύποι και πολυμορφισμός
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): 2 - 1 - 3 Προαπαιτούμενα: ΤΠ2003,2103

Classes and Objects Εργαστήριο Νο. 2

Προηγούμενο μάθημα Βασικά στοιχεία της JAVA Java Virtual Machine και Platform Independency Java Platform Δημιουργία πρώτου προγράμματος JAVA Εισαγωγή στο Netbeans IDE Ασκήσεις

Σημερινό μάθημα Τι είναι αντικείμενο? – Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό Τι είναι κλάση? – Περιγραφή αντικειμένων Σύνταξη κλάσεων Κατασκευαστές (Constructors) Setters, Getters Υπερφόρτωση μεθόδων (Method Overload) Δημιουργία Αντικειμένων Ασκήσεις

Τι είναι αντικείμενο? Στον πραγματικό κόσμο οτιδήποτε έχει μία υπόσταση Κοιτάξτε γύρω σας, βρείτε αντικείμενα και προσπαθήστε να τα περιγράψετε Όλα έχουν καταστάσεις και συμπεριφορές π.χ Το σκυλί έχει καταστάσεις (όνομα, χρώμα, ράτσα) και συμπεριφορές (γαυγίζει, κουνάει την ουρά). Στον κόσμο του OOP οτιδήποτε μπορεί να περιγραφεί σαν μια δομή και αποκτά υπόσταση στη μνήμη του συστήματος

Ανάλυση αντικειμένου Ποδήλατο Καταστάσεις Συμπεριφορές Τρέχουσα Ταχύτητα (20 km/h) Τρέχουσα Σχέση ταχυτήτων (5η) Τρέχων Ρυθμός πεταλιών (50 rpm) Συμπεριφορές Αλλαγή σχέσης ταχυτήτων Αλλαγή ρυθμού πεταλιών Πάτημα φρένου Επιτάγχυνση Διαπιστώνουμε ότι οι καταστάσεις ενός αντικειμένου μεταβάλλονται μέσω των συμπεριφορών του.

Ανάλυση αντικειμένου στον προγραμματισμό Συνοψίζοντας κάθε αντικείμενο του πραγματικού κόσμο αναλύεται σε καταστάσεις και συμπεριφορές. Οι καταστάσεις συνήθως αλλάζουν μέσω των συμπεριφορών του αντικειμένου. Στον κόσμο του αντικειμενοστραφούς προγραμματισμού ένα αντικείμενο αποθηκεύει τις καταστάσεις του σε πεδία(fields) και εκφράζει τις συμπεριφορές του μέσω των μεθόδων(methods). Η αλλαγή τιμής μίας κατάστασης-μεταβλητής , μπορεί να γίνει κάνοντας χρήση μιας συμπεριφοράς-μεθόδου. bicycle fields int speed; int gear; int cadence; methods setGear(int newValue) setCadence(int newValue) applyBreak(int decrement) speedUp(int increment)

Τι είναι κλάση? – Περιγραφή αντικειμένων Η δομή με την οποία περιγράφουμε αντικείμενα-οντότητες. Προσοχή, με μία κλάση ουσιαστικά περιγράφουμε αντικείμενα-οντότητες τα οποία έχουν κοινά χαρακτηριστικά. Παράδειγμα, αν θέλουμε να υλοποιήσουμε την κλάση Άνθρωπος περιγράφουμε τα κοινά χαρακτηριστικά που έχουν όλοι οι άνθρωποι μεταξύ τους και τα οποία τον διαφοροποιούν από τα υπόλοιπα ζώα. Από μία κλάση δημιουργούμε όσα αντικείμενα επιθυμούμε. Είναι το προσχέδιο(blueprint) από το οποίο δημιουργούμε ένα η περισσότερα αντικείμενα ιδίου τύπου. Θα μπορούσαμε να παρομοιάσουμε την κλάση σαν: α) Συνταγή ενός γλυκού : β) Αρχιτεκτονικό σχέδιο: το γλυκό από την οποία δημιουργούμε το σπίτι από το οποίο δημιουργούμε

Σύνταξη κλάσεων Όνομα Κλάσης Πεδία - Καταστάσεις Constructors Getters Setters Μέθοδοι -Συμπεριφορές

Constructors Ο Constructor μοιάζει με μία μέθοδο, με την διαφορά ότι έχει ως όνομα το όνομα της κλάσης και δεν έχει τιμή επιστροφής. Ο Constructor είναι αυτός που καλείται όταν δημιουργούμε ένα αντικείμενο. O Constructor συνήθως αρχικοποιεί τα πεδία του αντικειμένου. Σε μία κλάση μπορούμε να έχουμε περισσότερους του ενός Constructors αρκεί να έχουν διαφορετική λίστα παραμέτρων (constructor overload).

Getters - Setters Getters Setters

Υπερφόρτωση μεθόδων - Method Overload Σε μία κλάση μπορούμε να έχουμε περισσότερες από μια μεθόδους με το ίδιο όνομα αρκεί να έχουν διαφορετική λίστα παραμέτρων

Κανόνες ορθής σύνταξης Όνομα κλάσης άρα και constructor ξεκινάει με κεφαλαίο. Όνομα πεδίου, μεταβλητής ή μεθόδου ξεκινάει με μικρό. Η πρώτη λέξη στο όνομα μεθόδου είναι ρήμα. Εάν ένα όνομα αποτελείται από περισσότερες από μία λέξεις, τότε κάθε επόμενη λέξη ξεκινά με κεφαλαίο. Στην σύνταξη κλάσεων ακολουθούμε την σειρά Πεδία Constructors Getters Setters Μέθοδοι

Δημιουργία αντικειμένων Με την εκτέλεση του δεύτερου μισού της εντολής (myBike = new Bicycle(20,15,5); ) δημιουργείται ένα στιγμιότυπο του Bicycle και εκχωρείται στην μεταβλητή myBike η οποία είναι τύπου Bicycle. Με την εκτέλεση του πρώτου μισού της εντολής (Bicycle myBike) γίνεται δέσμευση χώρου μνήμης για μια μεταβλητή τύπου Bicycle. Με την εκτέλεση της εντολής myBike.getGear(); Καλούμε την μέθοδο getGear() της κλάσης Bicycle και τυπώνουμε την τιμή που επιστρέφει.

Ασκήσεις α) Υλοποιήστε την κλάση του αντικειμένου «Αυτοκίνητο» , έτσι ώστε κάθε κλάση θα έχει τουλάχιστον δύο καταστάσεις (fields), τέσσερις συμπεριφορές (methods), δύο κατασκευαστές και όλες τις μεθόδους Setters και Getters. Στην συνέχεια να υλοποιήσετε μια κλάση Main (η οποία θα έχει μέθοδο main() ) στην οποία να δημιουργήσετε αντικείμενα των παραπάνω κλάσεων και να καλείτε όλες τις μεθόδους τους. β) Υλοποιήστε την κλάση του αντικειμένου «Άνθρωπος» , έτσι ώστε κάθε κλάση θα έχει τουλάχιστον δύο καταστάσεις (fields), τέσσερις συμπεριφορές (methods), δύο κατασκευαστές και όλες τις μεθόδους Setters και Getters. Στην συνέχεια να υλοποιήσετε μια κλάση Main (η οποία θα έχει μέθοδο main() ) στην οποία να δημιουργήσετε αντικείμενα των παραπάνω κλάσεων και να καλείτε όλες τις μεθόδους τους.

Προαιρετικές ασκήσεις Υλοποιήστε τις κλάσεις του αντικειμένου «Τρένο», «Ρολόι» και «Βιβλίο». Κάθε κλάση θα έχει τουλάχιστον δύο μεταβλητές (variables), δύο κατασκευαστές, όλες τις μεθόδους Setters και Getters και μία επιπλέον μέθοδο. Στην συνέχεια να υλοποιήσετε μια κλάση Main (η οποία θα έχει μέθοδο main() ) στην οποία να δημιουργήσετε αντικείμενα των παραπάνω κλάσεων και να καλείτε όλες τις μεθόδους τους.

Χρήσιμα Links The Java Tutorials - Trail: Learning the Java Language Lesson: Object-Oriented Programming Concepts What Is an Object? What Is a Class? http://download.oracle.com/javase/tutorial/java/concepts/index.html “Object-Oriented Programming Concepts teaches you the core concepts behind object-oriented programming: objects, messages, classes, and inheritance. This lesson ends by showing you how these concepts translate into code. Feel free to skip this lesson if you are already familiar with object-oriented programming.” Lesson: Classes and Objects http://download.oracle.com/javase/tutorial/java/javaOO/index.html “Classes and Objects describes how to write the classes from which objects are created, and how to create and use the objects.”

Επόμενο μάθημα Access modifiers Ενθυλάκωση (Encapsulation) public private Ενθυλάκωση (Encapsulation) Instance and Class members static final Κληρονομικότητα (Inheritance) Πολυμορφισμός (Polymorphism) method overriding super/this keywords

Τέλος διαφανειών See you next time! The end