Αντικειμενοστρεφής Προγραμματισμός Object-Oriented Programming.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Object-Oriented Programming
Advertisements

Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΠΟΛΥΜΟΡΦΙΣΜΟΣ. ΑΝΑΚΕΦΑΛΑΙΩΣΗ Θεματολόγιο Κληρονομικότητα Παράδειγμα Κληρονομικότητα – Βελτιωμένο Παράδειγμα Ενθυλάκωση : public – private.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Αντικειμενοστρεφής Προγραμματισμός Object-Oriented Programming.
Επιστημονική - Επιμορφωτική Συνάντηση Εκπ/κων Μουσικής Α/θμιας και Β/θμιας Εκπ/σης 2014 θέμα: ''Η διδασκαλία τραγουδιών σχετικά με τις σχολικές εορτές.
Η 25 η Μαρτίου Σχέδιο Εργασίας Δ’ Δημοτικό Σχολείο Λεμεσού Κωνσταντίνου Άντρη Νικολάου Πολύμνια Στυλιανού Μαριλένα.
Πρόγραμμα Αγωγής Υγείας «Τρώω σωστά,μεγαλώνω σωστά» Σχολικό έτος ο Νηπιαγωγείο Πατρών.
2η Επιστημονική - Επιμορφωτική Συνάντηση Εκπ/κων Μουσικής Α/θμιας και Β/θμιας Εκπ/σης 2013 θέμα: “Μουσική γνωστική ανάπτυξη μέσα από το βίωμα” Δρ Γιώτα.
ΕΓΚΑΙΝΙΑ ΣΧΟΛΙΚΗΣ ΒΙΒΛΙΟΘΗΚΗΣ Ν. Δ. Τριανταφυλλόπουλος Τετάρτη, 20 Ιανουαρίου 2016.
Αριθμητική Επίλυση Διαφορικών Εξισώσεων 1. Συνήθης Δ.Ε. 1 ανεξάρτητη μεταβλητή x 1 εξαρτημένη μεταβλητή y Καθώς και παράγωγοι της y μέχρι n τάξης, στη.
1 Ζαρικάκη Ελισάβετ. 2 Διακόσμηση τάξης και δημιουργία παραμυθογωνιάς και βιβλιοθήκης μέσα στην τάξη Με μαξιλάρια, χαλάκι και παραμυθάκια που έφεραν τα.
Δρ. Σπυρούλα Σπύρου C.D.A. Κολλέγιο  Μάθημα
 Καταργείται η θεώρηση (ή αλλιώς η διάτρηση) των βιβλίων, είτε αυτά τηρούνται χειρόγραφα, είτε μηχανογραφικά.  Καταργείται και δεν θα ενημερώνεται πλέον.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΣΥΣΚΕΥΑΣΙΑ Αγροδιατροφικών Προϊόντων. Συσκευασία ενός πρωτογενούς αγροτικού προϊόντος ονομάζεται η περικάλυψη του από κάποιο ειδικό υλικό που χρησιμοποιείται.
ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΕΦΟΔΙΑΣΜΟΥ ΑΡΧΕΣ ΛΟΓΙΣΤΙΚΗΣ ΚΑΘΗΓΗΤΗΣ: Δρ ΠΑΝΑΓΙΩΤΗΣ ΚΩΤΣΙΟΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2015/2016.
ΑΝΑΚΥΚΛΩΣΙΜΑ ΥΛΙΚΑ Νίκος Σελλας, Μελετητής Workshops Αλεξανδρούπολη 15 Ιανουαρίου 2016.
ΜΑΘΗΣΗ Πώς επιτυγχάνεται η μάθηση στο σχολείο;
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ (SOFTWARE ENGINEERING) Διατύπωση προβλήματος
Χαράλαμπος Πουλόπουλος
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β΄ ΠΛΗΡΟΦΟΡΙΚΗΣ
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
Τέχνη και θάλασσα … Ομάδα β’ Γιώργος Αμοργιανός Στέλλα Αμοργιανού
Ο υπολογιστής Εισαγωγή.
JSIS E 111: Elementary Modern Greek
Κελυφοποιημένα δεδομένα [encapsulated data]
Ο τόπος μας… Το πολιτιστικό μας πάρκο ¨Αντώνης Τρίτσης¨
ΠΡΟΓΡΑΜΜΑ ΚΑΘΗΜΕΡΙΝΌΤΗΤΑΣ
Διδάσκων: Κων/νος Κώτης
Πρότυπα Προγραμματισμού
Διαφάνειες 1-8 και 18,19,22,23 από: eclass. sch. gr/modules/video/file
3ο ΓΕΛ ΠΟΛΙΧΝΗΣ ΓΡΑΦΗ ΜΟΡΙΑΚΩΝ ΤΥΠΩΝ x + y A B -
Απ’ το ΚΕΔΔΥ στο ΚΕΔΔΥ Ξάνθη 21/3/2017.
Όταν ο Θεός έφτιαξε τη γυναίκα εργαζόταν
Διαφάνειες 1-8 και 18,19,22,23 από: eclass. sch. gr/modules/video/file
Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ
Προχωρημένος Προγραμματισμός
JAVA – Basic OOP Principles
Ορισμός της έννοιας αλγόριθμος, πρόγραμμα Σχεδιασμός απλών αλγορίθμων
ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
Κλασικό τμήμα Σχολικό έτος «Η Αγγελική και ο Αλέξης παντρεύονται» Μια ιστορία που συνέθεσαν τα νήπια βλέποντας τους πίνακες του λαϊκού ζωγράφου.
ANDREW B. ABEL,BEN S. BERNANKE, DEAN CROUSHORE
Ταχυδρομικές Υπηρεσίες στην Ελλάδας Το παράδειγμα των Εταιρειών.
Εργασία στο μάθημα της Βιολογίας Σταυρακάκης Κων/νος Εφραίμ.
ΑΣΚΗΣΕΙΣ – ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ
Λύση προβλημάτων και Δημιουργικότητα
Kλυτία, η νύμφη που έγινε ηλιοτρόπιο
Βασικές έννοιες (Μάθημα 1) Τίτλος: Μερικές βασικές έννοιες της Πληροφορικής 22/11/2018 Ξένιος Αντωνιάδης.
Η παιδαγωγική σχέση στη διδασκαλία με τα νέα μέσα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
«Προώθηση οίνων σε αγορές τρίτων χωρών»
Ένα γεγονός που συγκλονίζει τη Βυζαντινή Αυτοκρατορία
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Σταθερά ΚΕΣΠΕΜ Κομοτηνής Εκπαιδευτικός: Κυριακή Ζαφείράκη Επιστημονική Υπεύθυνη: Μαρία Ζωγραφάκη Επόπτρια: Μαρία Γραμματίκα Τάξη: Στ Αριθμός Παιδιών:
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Υπο-τύποι και πολυμορφισμός
ΛΟΓΙΣΜΙΚΟ/SOFTWARE ΨΕΠ
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Κυβερνητική, θεωρία της πληροφορίας και συστημική
Κληρονομικότητα [inheritance]
ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΤΜΗΜΑΤΟΣ ΕΠΙΣΤΗΜΩΝ ΠΡΟΣΧΟΛΙΚΗΣ ΑΓΩΓΗΣ ΚΑΙ ΕΚΠΑΙΔΕΥΣΗΣ
Στα διάφορα επαγγέλματα
ΜΑΘΗΣΗ Πώς επιτυγχάνεται η μάθηση στο σχολείο;
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Αντικειμενοστρεφής Προγραμματισμός Object-Oriented Programming

Αντικειμενοστρεφής Προγραμματισμός Τι είναι: Μοντέλο προγραμματισμού -> Ένας τρόπος σκέψης Τυπικός ορισμός: Η αντικειμενοστρέφεια (object-orientation) είναι μία προσέγγιση στην ανάπτυξη λογισμικού που οργανώνει τόσο το πρόβλημα όσο και τη λύση του ως μία συλλογή από διακριτά αντικείμενα. Τα αντικείμενα αλληλεπιδρούν για την επίλυση του προβλήματος Eight Queens Problem

Αντικειμενοστρεφής Προγραμματισμός Ιστορία: 1967: Simula67 (Νορβηγία) -> πρώτη αντικειμενοστρεφής γλώσσα ’70: Smalltalk (Palo Alto, CA) -> κάθε στοιχείo ένα αντικείμενο Αρχές ’80: o αντικειμενοστρεφής τρόπος σκέψης εισάγεται σε ακαδημαϊκούς κύκλους ’80: C++ (Stroustrup, AT&T): σοβαρή, αποδοτική γλώσσα, πρότυπο στη βιομηχανία 1995: Java (Sun Microsystems)

Αντικειμενοστρεφής Προγραμματισμός Αποδοχή: Υψηλότατη τα τελευταία χρόνια Λόγοι: Επιτυχής επίλυση προβλημάτων μικρής όσο και μεγάλης κλίμακας (scalability) Προσομοιάζει τις τεχνικές καθημερινών προβλημάτων Πολλές διαθέσιμες γλώσσες Πολλές διαθέσιμες βιβλιοθήκες

Ένας τρόπος θεώρησης του κόσμου Chris θέλει να στείλει λουλούδια στην Mary ChrisFred bla Mary

Ένας τρόπος θεώρησης του κόσμου O μηχανισμός για την επίλυση του προβλήματος περιλαμβάνει την εύρεση ενός διαμεσολαβητή και τη μεταφορά σε αυτόν ενός μηνύματος (message). Είναι ευθύνη του Fred να ικανοποιήσει την επιθυμία του Chris. Προφανώς υπάρχει κάποια μέθοδος (method) για την επίτευξη του σκοπού. Ωστόσο, ο Chris, δεν χρειάζεται να γνωρίζει τον τρόπο με τον οποίο ο ανθοπώλης θα στείλει τα λουλούδια. Η πληροφορία αυτή, που δεν αφορά τον Chris, είναι υπό μία έννοια κρυμμένη. Ο ανθοπώλης ενδεχομένως να αλληλεπιδρά με διάφορα άλλα άτομα (προμηθευτές, άλλους ανθοπώλες, courier)

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

Ένας τρόπος θεώρησης του κόσμου Η αλυσιδωτή αντίδραση ξεκίνησε από μία αίτηση ChrisFred bla Μία λειτουργία ενεργοποιείται στον αντικειμενοστρεφή προγραμματισμό με την μετάδοση ενός μηνύματος σε ένα αντικείμενο το οποίο είναι υπεύθυνο για αυτή τη λειτουργία. Το μήνυμα κωδικοποιεί την αίτηση για μία λειτουργία και συνοδεύεται από τυχόν επιπρόσθετες πληροφορίες (παραμέτρους) που απαιτούνται για την εκτέλεση της λειτουργίας. Όταν ο αποδέκτης αποδεχθεί το μήνυμα, αναλαμβάνει την ευθύνη να ολοκληρώσει την εν λόγω λειτουργία. Η απόκριση σε ένα μήνυμα είναι η εκτέλεση κάποιας λειτουργίας (μεθόδου) για την ικανοποίηση της αίτησης.

Ένας τρόπος θεώρησης του κόσμου Μία αρχή του αντικειμενοστρεφούς προγραμματισμού είναι κοντά στις ανθρώπινες αδυναμίες…… Αν υπάρχει κάποια εργασία που πρέπει να εκτελεστεί, πρώτη σκέψη είναι η εύρεση κάποιου άλλου που θα την εκτελέσει !! Ωστόσο, ο καλός προγραμματιστής διαφέρει, ακριβώς λόγω αυτού του στοιχείου: Η διάθεση να εμπιστευθούμε τμήματα λογισμικού που έχουν αναπτυχθεί από άλλους είναι ένα σημαντικό βήμα προς την κατεύθυνση του επαναχρησιμοποιούμενου λογισμικού (reusable software)

Κλάσεις και Αντικείμενα Πώς γνωρίζει ο Chris τι υπηρεσίες παρέχει ο Fred ? κλάση αντικείμενο Ο όρος ανθοπώλης αναπαριστά μία κατηγορία (κλάση) της οποίας ο Fred είναι ένα αντικείμενο. Όλα τα αντικείμενα είναι στιγμιότυπα μιας κλάσης. Η μέθοδος που ενεργοποιείται από ένα αντικείμενο ως απόκριση σε ένα μήνυμα καθορίζεται από την κλάση του αποδέκτη. Όλα τα αντικείμενα μιας κλάσης χρησιμοποιούν την ίδια μέθοδο ως απόκριση στον ίδιο τύπο μηνύματος. Κάθε αντικείμενο έχει ιδιότητες και συμπεριφορά

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

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

Διασύνδεση Μεθόδων Θηλαστικά Πτηνά Ζώα ιδιότητα: γέννηση μικρά αβγά Επομένως, στο μοντέλο του αντικειμενοστρεφούς προγραμματισμού, θα πρέπει να υπάρχει μία τεχνική εισαγωγής εξαιρέσεων σε ένα γενικό κανόνα

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

Επικάλυψη και Πολυμορφισμός Η δυνατότητα, δύο διαφορετικά αντικείμενα που ανήκουν σε κλάσεις που συνδέονται με κληρονομικότητα, να αντιδρούν με διαφορετικό τρόπο στο ίδιο μήνυμα, ονομάζεται: επικάλυψη επικάλυψη (χρησιμοποιείται στατική διασύνδεση) ή πολυμορφισμός πολυμορφισμός (χρησιμοποιείται δυναμική διασύνδεση). Γενικότερα, επικάλυψη είναι η ανάθεση σε έναν τελεστή ή λειτουργία, περισσοτέρων της μιας εννοιών, ανάλογα με τους τύπους δεδομένων που σχετίζονται με τον τελεστή ή τη λειτουργία. Θεωρούμε το ακόλουθο παράδειγμα ενός απλού μοντέλου για την εκτύπωση και άθροιση δύο ακεραίων: εκτύπωση (518, 202) εκτύπωση (“Το άθροισμα των αριθμών είναι”) εκτύπωση (720)

Επικάλυψη και Πολυμορφισμός Σε ένα συμβατικό πρόγραμμα οι συναρτήσεις εκτύπωσης έχουν διαφορετική υλοποίηση ανάλογα με το τι εκτυπώνεται: write_two_integers(518, 202); write_string("The sum of these numbers is:"); write_one_integer(720); Αν ο μεταγλωττιστής είναι σε θέση να αποφασίσει βάσει του τύπου και αριθμού των ορισμάτων ποια υλοποίηση θα χρησιμοποιήσει: write(518, 202); write("The sum of these numbers is:"); write(720); Αν η δυνατότητα αυτή υπάρχει σε μία γλώσσα προγραμματισμού, θεωρείται ότι είναι δυνατή η επικάλυψη μιας λειτουργίας Η διασύνδεση ονόματος και υλοποίησης που πραγματοποιείται κατά τη μεταγλώττιση (at compile time) ονομάζεται στατική διασύνδεση.

Επικάλυψη και Πολυμορφισμός Παράδειγμα 2 Θεωρούμε μία ομάδα ατόμων, ορισμένα εκ των οποίων είναι φοιτητές. Ζητούμε από τα μέλη της ομάδας να παρουσιάσουν τον εαυτό τους: Κάθε φοιτητής θα πρέπει να δώσει το όνομα του καθώς και τη σχολή στην οποία φοιτά, όλα τα υπόλοιπα μέλη της ομάδας πρέπει να δώσουν μόνο το όνομά τους. Δημιουργούμε ένα αντικειμενοστρεφές μοντέλο αυτής της ομάδας εισάγοντας δύο κλάσεις, Person και Student. Η κλάση Person έχει μία μέθοδο present_yourself που εκτυπώνει το όνομα ενώ η κλάση Student έχει μία μέθοδο present_yourself που εκτυπώνει το όνομα και τη σχολή φοίτησης.

Επικάλυψη και Πολυμορφισμός Στην πραγματικότητα αλλά και στο μοντέλο η απαίτηση είναι απλή: η απάντηση στο ερώτημα present_yourself να δοθεί με βάση την κλάση στην οποία ανήκει το κάθε αντικείμενο. φοιτητής άλλο παρουσιάσου όνομα σχολή παρουσιάσου όνομα παρουσιάσου όνομα σχολή Κατά τη συγγραφή του προγράμματος δεν είναι γνωστό τι αντικείμενα θα περιέχει η λίστα.

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

Σύνοψη Αντικειμενοστρεφών Εννοιών 1. Οτιδήποτε είναι ένα αντικείμενο 2. Οι υπολογισμοί επιτυγχάνονται με την αλληλεπίδραση των αντικειμένων. Τα αντικείμενα αλληλεπιδρούν με την αποστολή μηνυμάτων. Ένα μήνυμα είναι μία αίτηση για εκτέλεση λειτουργίας. 3. Κάθε αντικείμενο έχει τη δική του μνήμη. 4. Κάθε αντικείμενο είναι ένα στιγμιότυπο μιας κλάσης. Μία κλάση αναπαριστά ένα σύνολο αντικειμένων με κοινά χαρακτηριστικά και ιδιότητες. 5. Η κλάση είναι η αποθήκη συμπεριφοράς που σχετίζεται με ένα αντικείμενο. Αυτό σημαίνει, ότι όλα τα αντικείμενα μέλη μιας κλάσης μπορούν να επιτελέσουν τις ίδιες λειτουργίες. 6. Οι κλάσεις είναι οργανωμένες σε μία δενδροειδή ιεραρχία. Η συμπεριφορά που σχετίζεται με τα αντικείμενα μιας γονικής κλάσης είναι αυτομάτως διαθέσιμη σε οποιαδήποτε υποκείμενη κλάση.

Αφαίρεση

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

Αφαίρεση Οι τεχνικές του διαμερισμού σε τμήματα και του διαχωρισμού σε ειδικότερες κατηγορίες αντιστοιχούν στις δύο πιο σημαντικές μορφές αφαίρεσης στον αντικειμενοστρεφή προγραμματισμό όπου είναι συνήθως γνωστές ως: έχει αφαίρεση τύπου "έχει" (has-a abstraction) και ως είναι αφαίρεση τύπου "είναι" (is-a abstraction) αντίστοιχα. Κατά το διαμερισμό σε τμήματα για παράδειγμα, ένα αυτοκίνητο "έχει" μία μηχανή και "έχει" ένα σύστημα μετάδοσης. Στον διαχωρισμό σε ειδικότερες κατηγορίες, ένα ποδήλατο "είναι" ένα όχημα, ή "είναι" ένα δίκυκλο για παράδειγμα. Οι δύο αυτές μορφές αφαίρεσης συνδέονται στενά με συγκεκριμένες προγραμματιστικές έννοιες σε διάφορες αντικειμενοστρεφείς γλώσσες προγραμματισμού.

Ενσωμάτωση Θεμελιώδης έννοια στον Αντικειμενοστρεφή Προγραμματισμό: Object Ενσωμάτωση: Ενσωμάτωση: Το αντικείμενο περιλαμβάνει τόσο δεδομένα όσο και τις μεθόδους που χειρίζονται τα δεδομένα :Λογαριασμός Όνομα κατόχου Αριθμός Υποκατάστημα Τραπέζης Δεδομένα, Ιδιότητες (Attributes) Υπολογισμός τόκων Εκτύπωση υπολοίπου Μεταφορά σε άλλο λογαριασμό Συμπεριφορά, Λειτουργίες (Methods)

Ενσωμάτωση Λογ. Α Όνομα κατόχου: Πέτρου Αριθμός: Υποκατάστημα: Μαρτίου Υπολογισμός τόκων Εκτύπωση υπολοίπου Μεταφορά σε άλλο λογαριασμό Λογαριασμός Όνομα κατόχου: ΧΧΧΧ Αριθμός: ΧΧΧΧ Υποκατάστημα : ΧΧΧΧ Υπολογισμός τόκων Εκτύπωση υπολοίπου Μεταφορά σε άλλο λογαριασμό Λογ. Β Όνομα κατόχου: Νικολάου Αριθμός: Υποκατάστημα: Τσιμισκή Υπολογισμός τόκων Εκτύπωση υπολοίπου Μεταφορά σε άλλο λογαριασμό Λογ. Γ Όνομα κατόχου: Ξένος Αριθμός: Υποκατάστημα: Χαριλάου Υπολογισμός τόκων Εκτύπωση υπολοίπου Μεταφορά σε άλλο λογαριασμό

Σύνθεση Αυτοκίνητο Τύπος: ΧΧΧΧ Μηχανή: CD Player: Μηχανή CD Player

Αντικειμενοστρεφής Σχεδίαση Το να προγραμματίζει κανείς σε μία αντικειμενοστρεφή γλώσσα δεν είναι ούτε αναγκαία ούτε ικανή συνθήκη για αντικειμενοστρεφή σχεδίαση Η σημαντικότερη συνθήκη είναι η δημιουργία μιας κοινότητας αλληλεπιδρώντων αλλά ανεξάρτητων οντοτήτων που συνεργάζονται για την επίτευξη ενός στόχου. Τεχνική Σχεδίασης: Κατανομή Ευθυνών – Αρμοδιοτήτων Ευθύνη -> αναμένεται ότι τηρούνται κάποιοι κανόνες -> προϋποθέτει ένα βαθμό αυτονομίας Διαφορά μεταξύ συμβατικού μοντέλου προγραμματισμού και αντικειμενοστρεφούς μοντέλου: -> εκτέλεση εργασίας από ένα παιδί υπό συνεχή επίβλεψη -> ανάθεση ευθύνης στο παιδί – ανεξάρτητη εκτέλεση

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