Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

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

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

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Τεχνικός Εφαρμογών Πληροφορικής

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

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

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

Εργαστήριο Εκπαιδευτικού Υλικού και Εκπαιδευτικής Μεθοδολογίας (Ε.Ε.Υ.Ε.Μ.)

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

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

Προγραμματισμός Υπολογιστών με C++

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

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

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

ΕΠΛ 012. JavaScripts

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

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

Κλάσεις στην Python. Δημιουργία κλάσεων

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Wrapper Classes, Abstract Classes and Interfaces

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Κλάσεις στην Python. Δημιουργία κλάσεων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

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

Κεφάλαιο 15 Γλώσσα προγραμματισμού Java

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Προγραμματισμός ΙI (Θ)

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

Σημειώσεις D3. Προφανώς εάν προσθέταμε μία ή περισσότερες παραγράφους, πριν το script, θα άλλαζε το text στην πρώτη.

Προγραμματισμός Υπολογιστών με C++

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

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

Δομές Δεδομένων & Αλγόριθμοι

Λογισµικό (Software SW) Γλώσσες

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

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

ER Diagram Συσχετίσεις Ασθενείς Οντότητες Παράδειγμα ER.. Εργαστήριο Βάσεων Δεδομένων. Entity-Relationship Diagram (ER)

Ανάπτυξη και Σχεδίαση Λογισμικού

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Εισαγωγή στον Προγ/μό Υπολογιστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

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

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

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

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

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

Δυναμική μνήμη με πίνακες και λίστες

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Κεφάλαιο 7: Υπορουτίνες

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

Η γραφική μέθοδος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Δομημένος Προγραμματισμός (ΤΛ1006)

ΚΑΤΑΣΚΕΥΑΣΤΕΣ ΑΝΤΙΓΡΑΦΗΣ

Transcript:

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript 1

Ορισμοί Κλάση: πρότυπο (template) π.χ. πολύγωνο Μέθοδος ή μήνυμα: Μια ορισμένη δυνατότητα της κλάσης π.χ. για τα πολύγωνα computearea Γνώρισμα: Ένα ορισμένο στοιχείο (δεδομένο) της κλάσης π.χ. για τα πολύγωνα κορυφές πολυγώνου Αντικείμενο ή στιγμιότυπο: ένα συγκεκριμένο αντικείμενο της κλάσης π.χ. το πολύγωνο του χώρου του ΤΕΙ 2

Ορολογία: Κλάση Ορίζει τα αφαιρετικά χαρακτηριστικά των αντικειμένων Περιλαμβάνει: τα χαρακτηριστικά (γνωρίσματα ή πεδία ή ιδιότητες) τη συμπεριφορά (μεθόδους, λειτουργίες) των αντικειμένων. Προσχέδιο-προδιαγραφή που περιγράφει τη φύση των αντικειμένων Για παράδειγμα η κλάση Πολύγωνο αποτελείται από τα χαρακτηριστικά που περιγράφουν όλα τα πολύγωνα, όπως οι κορυφές και οι μονάδες μέτρησης εμβαδού τους τις δυνατότητες-λειτουργίες των πολυγώνων όπως ο υπολογισμός εμβαδού η διαχείριση (διαγραφή/προσθήκη) των κορυφών του 3

Ορολογία: Στιγμιότυπο Συγκεκριμένο αντικείμενο της κλάσης Είναι το πραγματικό αντικείμενο που δημιουργείται κατά την εκτέλεση (π.χ. το αντικείμενο πολύγωνοτει είναι ένα στιγμιότυπο της κλάσης Πολύγωνο) Κατάσταση αντικειμένου: το σύνολο των τιμών των γνωρισμάτων ενός συγκεκριμένου αντικειμένου Το αντικείμενο αποτελείται από: την κατάσταση του και τη συμπεριφορά που ορίζεται στην κλάση του Οι όροι στιγμιότυπο και αντικείμενο είναι ταυτόσημοι 4

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

Κατασκευαστές αντικειμένων στη JS Στη JavaScript δεν υπάρχει η δυνατότητα δημιουργίας/περιγραφής κλάσεων με την κλασσική έννοια του αντικειμενοστραφούς προγραμματισμού παρέχεται η δυνατότητα δημιουργίας αντικειμένων βάσει προτύπου (αντί κλάσης) που ορίζεται από μια συνάρτησηκατασκευαστή Συνάρτηση-Κατασκευαστής Συνάρτηση που χρησιμοποιείται ως πρότυπο κατασκευής αντικειμένων Τα αντικείμενα JavaScript κληρονομούν όλες τις ιδιότητες/μεθόδους του προτύπου στο οποίο βασίζονται Οποιαδήποτε συνάρτηση JavaScript μπορεί να χρησιμοποιηθεί ως κατασκευαστής 6

Ιδιότητες/Μέθοδοι Κατασκευαστών JS Η λέξη-κλειδί this αναφέρεται στο (αρχικά προσωρινό) αντικείμενο το οποίο δημιουργείται κατά την κλήση του κατασκευαστή Η προσθήκη ιδιότητας στο υπό κατασκευή αντικείμενο ακολουθεί τη σύνταξη: this.όνομα-ιδιότητας = τιμή Σε συναρτήσεις που προορίζονται για μέθοδοι του κατασκευαστή, η αναφορά στις ιδιότητες του προτύπου θα πρέπει να γίνεται με τον δείκτη this Nέα αντικείμενα του προτύπου δημιουργούνται χρησιμοποιώντας τη λέξη κλειδί new πριν την εντολή κλήσης της συνάρτησης-κατασκευαστή η συνάρτηση επιστρέφει (έμμεσα) αντικείμενο τύπου Object σε αυτή την περίπτωση 7

Ιδιότητες/Μέθοδοι Κατασκευαστών JS Παράδειγμα -- Κατασκευαστής 2Δ σημείων /* Συνάρτηση-κατασκευαστής σημείων */ function Point(crs,x,y){ this.crs = crs; this.x = x; this.y = y; /* μέθοδος μέτρησης απόστασης μεταξύ του τρέχοντος σημείου και του σημείου p */ this.computedistfrom = function(p){ var dx = this.x - p.x; var dy = this.y - p.y; return Math.sqrt(dx*dx+dy*dy); }; } //Εκτέλεση var p1 = new Point( EPSG:2100,0,0); var p2 = new Point( EPSG:2100,0,5); alert( Απόσταση: +p1.computedistfrom(p2)); //Απόσταση:5 8

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

Μέθοδοι στιγμιοτύπων Παράδειγμα -- Δείκτης σε μέθοδο αντικειμένων //Ορισμοί function computedistfrom(p){ var dx = this.x - p.x; var dy = this.y - p.y; return Math.sqrt(dx*dx+dy*dy); } /*Συνάρτηση-κατασκευαστής σημείων*/ function Point(crs,x,y){ this.crs = crs; this.x = x; this.y = y; this.computedistfrom = computedistfrom; } //Εκτέλεση var p1 = new Point( EPSG:2100,0,0); var p2 = new Point( EPSG:2100,0,5); alert( Απόσταση: +p1.computedistfrom(p2)); //Απόσταση:5 10