Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

Σχετικά έγγραφα
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

Εισαγωγή στον Προγραμματισμό με C++

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Θεόδωρος Γ. Λάντζος Διάλεξη Νο1

Σύνθεση και Κληρονομικότητα

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Τι είναι κλάση Κλάση

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Κλάσεις και αντικείμενα #include <iostream.h<

Σύνθεση και Κληρονομικότητα

Περιεχόμενα. Προλεγόμενα... ix Κεφάλαιο 1 Εισαγωγή Κεφάλαιο 2 Δεδομένα και εκφράσεις Κεφάλαιο 3 Λογικές συνθήκες και δομές ελέγχου...

A8-0202/150

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

Εισαγωγή στην επιστήμη των υπολογιστών

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Π2 Το Σύστηµα Κανόνων CLIPS

Τεχνολογία Λογισμικού

ΠΑΡΑΔΕΙΓΜΑΤΑ USE CASE DIAGRAMS CLASS DIAGRAMS

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο2-Νο3

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο. Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

α) Πώς παίρνουμε αποφάσεις στην καθημερινή μας ζωή; Συμπληρώσετε τον παρακάτω πίνακα: τότε

Πληροφορική 2. Γλώσσες Προγραμματισμού

Οντοκεντρικός Προγραμματισμός

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

Έργο δύναμης. Γενικά το έργο δύναμης είναι το εσωτερικό γινόμενο δύο δυανυσμάτων: της δύναμης επί την μετατόπιση

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Τύποι δεδομένων, τελεστές, μεταβλητές

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

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

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Βάσεις Δεδομένων Εισαγωγή

Περιεχόμενα. Πρόλογος... 21

Ενότητα 3 (κεφάλαιο 16) Επαναχρησιμοποίηση Λογισμικού

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Προγραµµατιστικές τεχνικές

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Το παιχνίδι Arkanoid με ΒΥΟΒ Στο παιχνίδι αυτό γίνεται εφαρμογή των δυνατοτήτων που προσφέρει το BYOB στον αντικειμενοστραφή προγραμματισμό.

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

γραπτή εξέταση στο μάθημα ΦΥΣΙΚΗ Α ΛΥΚΕΙΟΥ

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και

Ειδικά Θέματα Προγραμματισμού

Ημερομηνία: Σάββατο 11 Νοεμβρίου 2017 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

Προγραμματισμός Διαδικτύου

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ

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

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

Δομημένος Προγραμματισμός

Βασικές Αρχές Προγραμματισμού

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Διακριτά Μαθηματικά. Απαρίθμηση. Βασικές τεχνικές απαρίθμησης Αρχή Περιστεριώνα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους.

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Κεφάλαιο 7: Υλοποίηση εφαρμογών σε προγραμματιστικά περιβάλλοντα. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

ΠΕΡΙΕΧΟΜΕΝΑ Αντικειμενοστραφής προγραμματισμός Οδηγούμενος από γεγονότα προγραμματισμός Υλοποίηση εφαρμογών σε σύγχρονο προγραμματιστικό

Γενικά (για τις γραπτές εξετάσεις)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Θέµατα εξετάσεων µε απαντήσεις

Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python. Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python.

Αντικειµενοστραφής Προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων


ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

Σχεδιασµός βασισµένος σε συνιστώσες

Ηλεκτρονικοί Υπολογιστές

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

Περιεχόμενο του μαθήματος

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Transcript:

1

2

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

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

Αντικείμενα (1) Τα αντικείμενα είναι βασικά στοιχεία στον αντικειμενοστραφή προγραμματισμό τα οποία έχουν χαρακτηριστικά αλλά και συμπεριφορές. Με τον όρο χαρακτηριστικό εννοούμε οτιδήποτε καθορίζει την φυσική υπόσταση του αντικειμένου. Με τον όρο συμπεριφορά το πώς συμπεριφέρεται ένα αντικείμενο από μόνο του ή όταν μία ενέργεια επιδράσει επάνω του. Δημιουργία αντικειμένου Αντικειμενοστραφής εφαρμογή Χειρισμός αντικειμένου 5

Αντικείμενα (2) Τα χαρακτηριστικά είναι τα δεδομένα-μέλη της κλάσης τα οποία τα κρύβουμε με ειδικές τεχνικές, για να είναι ασφαλή από τυχόν αλλοίωσή τους. Οι συμπεριφορές είναι οι συναρτήσεις-μέλη της κλάσης οι οποίες χειρίζονται με κατάλληλο τρόπο τα δεδομένα-μέλη της κλάσης. Οι συναρτήσεις-μέλη λέγονται αλλιώς και μέθοδοι μιας κλάσης. Παράδειγμα. Το αντικείμενο Ήρα της κλάσης γάτα έχει χαρακτηριστικά το όνομά της, την ηλικία της, το χρώμα της και συμπεριφορές νιαουρίζει, κοιμάται, τρώει κλπ. 6

Κλάσεις Η κλάση είναι ένα σύνολο από παρόμοια αντικείμενα. Η κλάση είναι το πρότυπο, δηλαδή καθορίζει τα δεδομένα (χαρακτηριστικά) και τις συναρτήσεις (συμπεριφορές) που θα έχουν τα αντικείμενα της κλάσης. Άρα όλα τα αντικείμενα είναι πιστά αντίγραφα της κλάσης στην οποία ανήκουν. Η κλάση κατά τον ορισμό της δεν δημιουργεί αντικείμενα. Τα αντικείμενα δημιουργούνται από άλλους παράγοντες μέσα στο πρόγραμμα (άλλες συναρτήσεις, δομές κλπ). 7

Εγκλεισμός Η διαδικασία της συμπερίληψης όλων των πληροφοριών (δεδομένων και συναρτήσεων) σε ένα μέρος (κλάση), λέγεται εγκλεισμός (encapsulation). Αυτό επιτρέπει τους πελάτες της κλάσης (άλλες κλάσεις ή συναρτήσεις) να χρησιμοποιούν την κλάση χωρίς να τους ενδιαφέρει πως δουλεύει. Για παράδειγμα μπορούμε να οδηγούμε ένα αυτοκίνητο χωρίς να μας ενδιαφέρει πως λειτουργεί η μηχανή. 8

Παράδειγμα Με την βοήθεια της αντικειμενοστραφούς γλώσσας προγραμματισμού C++,με την οποία και θα ασχοληθούμε στο μάθημα ορίζουμε μία κλάση, παράγουμε 2 αντικείμενα της κλάσης και καλούμε μια συνάρτηση της κλάσης από το ένα αντικείμενο. class person { }; //δήλωση της κλάσης person person p1,p2; //δήλωση 2 αντικειμένων της κλάσης person p1.readdata(); //κλήση συνάρτησης από το αντικείμενο p1 9

Κλάση Σχηματική παράσταση Δεδομένο-μέλος Κλήση Συνάρτησης από αντικείμενο class person Name p1 Name Age readdata() Age readdata() p2 Name Αντικείμενο printdata() Age Συνάρτηση-μέλος 10

Κληρονομικότητα (1) Η έννοια της κλάσης στον αντικειμενοστραφή προγραμματισμό είναι άρρηκτα συνδεδεμένη και με την έννοια της κληρονομικότητας. Κληρονομικότητα ονομάζεται η διαδικασία που επιτρέπει μία κλάση να κληρονομεί τις ιδιότητες και την συμπεριφορά μιας άλλης κλάσης. Η κλάση που κληρονομείται λέγεται βασική κλάση (base class) ενώ, Η κλάση που κληρονομεί λέγεται παραγόμενη κλάση (derived class). Για παράδειγμα η κλάση οχήματα χωρίζεται σε επιβατικά, φορτηγά, λεωφορεία κλπ. 11

Κληρονομικότητα (2) Η παραγόμενη κλάση κληρονομεί χαρακτηριστικά και συμπεριφορές από την βασική κλάση αλλά μπορεί να έχει και δικά της. Αν γυρίσουμε στο προηγούμενο παράδειγμα όλα τα οχήματα (βασική κλάση) έχουν κινητήρα και τροχούς (χαρακτηριστικά), ξεκινούν και σταματούν (συμπεριφορά), αλλά τα φορτηγά έχουν καρότσα (χαρακτηριστικό) η οποία ανατρέπεται (συμπεριφορά) και τα λεωφορεία έχουν πολλά καθίσματα (χαρακτηριστικό). Οχήματα Επιβατικά Φορτηγά Λεωφορεία 12

13

Επαναχρησιμοποίηση και Πολυμορφισμός (1) Δύο βασικά χαρακτηριστικά στον αντικειμενοστραφή προγραμματισμό είναι η επαναχρησιμοποίηση και ο πολυμορφισμός. Η επαναχρησιμοποίηση είναι η δυνατότητα χρησιμοποίησης μιας κλάσης όταν οριστεί από άλλα προγράμματα. Είναι κάτι δηλαδή σαν τις βιβλιοθήκες συναρτήσεων της γλώσσας προγραμματισμού όπου μπορούμε να τις χρησιμοποιήσουμε σε πολλά προγράμματα. Επίσης η κληρονομικότητα είναι μια μορφή επαναχρησιμοποίησης αφού μπορούμε να πάρουμε μια κλάση και χωρίς να την τροποποιήσουμε να παράξουμε μία άλλη κλάση προσθέτοντας 14

Επαναχρησιμοποίηση και Πολυμορφισμός (2) επιπλέον χαρακτηριστικά και μεθόδους. Η νέα κλάση κληρονομεί χαρακτηριστικά και μεθόδους από την βασική αλλά χρησιμοποιεί και τα δικά της. Πολυμορφισμός είναι η δυνατότητα που δίνεται: 1. Σε ένα αντικείμενο να αναφέρεται σε διαφορετικές κλάσεις (από αυτή από την οποία δημιουργήθηκε) και να επιδρά διαφορετικά σε άλλα αντικείμενα. 2. Σε μία συνάρτηση να υπάρχει πολλές φορές μέσα σε μία κλάση με το ίδιο όνομα και τον ίδιο σκοπό, αλλά με διαφορετικά αποτελέσματα. 15

Επαναχρησιμοποίηση και Πολυμορφισμός (3) Για παράδειγμα η συνάρτηση πάτησε() λειτουργεί διαφορετικά στο φρένο, διαφορετικά στο γκάζι και διαφορετικά στον συμπλέκτη του αυτοκινήτου. 3. Αλλά και σε έναν τελεστή να λειτουργεί διαφορετικά μέσα σε ένα πρόγραμμα. Συμπέρασμα Τα δύο αυτά χαρακτηριστικά δηλαδή η επαναχρησιμοποίηση και ο πολυμορφισμός είναι πολύ σημαντικά γιατί ουσιαστικά μαζί με την έννοια της κλάσης και του αντικειμένου είναι οι πυλώνες στους οποίους στηρίζεται ο αντικειμενοστραφής προγραμματισμός. 16