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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 18/2/2019 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια

2 Πρακτικά Θέματα Διαλέξεις Δευτέρα 13:15-16:00, αίθουσα 103 Διάρκεια μαθήματος 13 εβδομάδες Παρουσιάσεις διαλέξεων/εργαστηρίων επιπλέον χρήσιμο υλικό Στο site του μαθήματος Εργαστήρια Ώρες γραφείου: Τρίτη 14:30-15:30, κτίριο Ανδρούτσου, γραφείο 204

3 Αξιολόγηση / Βαθμολόγηση επίδοσης Βαθμολογία Εξετάσεις 80% Εργαστήρια Ασκήσεις Εργασία 30% Βαθμός εξετάσεων >= 5 για να μετρήσει ο βαθμός της εργασίας

4 Στόχος Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό (object oriented programming) χρησιμοποιώντας τη γλώσσα προγραμματισμού Java Ο σκοπός του είναι να διδάξει τις βασικές έννοιες και τεχνικές που συνιστούν το υπόδειγμα του αντικειμενοστρεφούς προγραμματισμού

5 Βιβλίο Βασικά Συγγράμματα H. M. Deitel, P. J. Deitel, Java Προγραμματισμός, Μ. Γκιούρδας David J. Barnes, Michael Kolling, Αντικειμενοστρεφής Προγραμματισμός σε Java, Εκδόσεις Κλειδάριθμος

6 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό

7 Γλώσσες προγραμματισμού (1/5) Το βασικό εργαλείο του προγραµµατιστή! Είναι ένα σύστηµα συµβολισµών µε το οποίο µπορεί να περιγράφει εργασίες που πρόκειται να εκτελεστούν από έναν υπολογιστή Η ποικιλία των εργασιών που είναι επιθυµητό να εκτελούνται από τους υπολογιστές δικαιολογεί την ύπαρξη πληθώρας γλωσσών προγραµµατισµού που διαφέρουν: στην πολυπλοκότητα στη µορφή στη θεµατική περιοχή όπου απευθύνονται στη φιλοσοφία προγραµµατισµού που υποστηρίζουν

8 Γλώσσες προγραμματισμού (2/5) Γλώσσα μηχανής (Machine language) Γλώσσα συμβολομετάφρασης (Assembly language) Γλώσσες υψηλού επιπέδου (High-level languages)

9 Γλώσσες προγραμματισμού (3/5) Γλώσσα μηχανής (Machine language) Η φυσική γλώσσα του υπολογιστή Ακολουθία από 0 και 1 (binary) Διαφορετικοί υπολογιστές αντιλαμβάνονται-κατανοούν διαφορετικές ακολουθίες Δυσνόητη για τον άνθρωπο : Γλώσσα συμβολομετάφρασης (Assembly language) Μνημονικά (σύντομες περιγραφικές λέξεις) για τη γλώσσα μηχανής low level: κάθε εντολή θεωρείται ως ένα σημείο πρωταρχική (minimal) Επίσης δύσκολη στην κατανόηση από τον άνθρωπο: ADD.L d0,d2

10 Γλώσσες προγραμματισμού (4/5) Με τη χρήση γλωσσών χαµηλού επιπέδου είναι πρακτικά αδύνατο να εξασφαλιστεί η απαιτούµενη ποιότητα του λογισµικού Οι γλώσσες προγραμματισμού χαµηλού επιπέδου χρησιµοποιούνται µόνο για την υλοποίηση τµηµάτων ενός συστήµατος λογισµικού που είναι εξαιρετικά απαιτητικό από πλευράς επιδόσεων ή που αφορά συγκεκριµένες συσκευές Παράδειγμα µέρη λειτουργικών συστηµάτων λογισµικό ειδικών απαιτήσεων, όπως αυτό που σχετίζεται µε συστήµατα πραγµατικού χρόνου (real time systems).

11 Γλώσσες προγραμματισμού (5/5) Γλώσσες υψηλού επιπέδου (High-level languages) FORTRAN, Pascal, BASIC, C, C++, Java, κτλ high level: κάθε εντολή συντίθεται από πολλές εντολές χαμηλού επιπέδου Πιο κοντά στην Αγγλική γλώσσα Ευκολότερη στην ανάγνωση και την κατανόηση: hypotenuse = Math.sqrt(opposite*opposite + adjacent*adjacent);

12 Είδη προγραμματισμού (1/3) Σειριακός Προγραμματισμός Δομημένος/Συναρτησιακός Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός (OOP Object Oriented Programming)

13 Είδη προγραμματισμού (2/3) Σειριακός Προγραμματισμός Ενδείξεις / Ταμπέλες (Labels) Ροή από επάνω προς τα κάτω Ανακατευθύνσεις (GOTOs, Jumps) Παραδείγματα: Απλή Basic, Assembly Δομημένος/Συναρτησιακός Προγραμματισμός Βιβλιοθήκη συναρτήσεων Συνάρτηση (Function) Διαδικασία (Procedure) Κλήση Συναρτήσεων Παράδειγμα: Γλώσσα C

14 Είδη προγραμματισμού (3/3) Αντικειμενοστρεφής Προγραμματισμός Βιβλιοθήκη κλάσεων Στη Java λέγεται και πακέτο Κλάση (Class) Αντικείμενο / Στιγμιότυπο (Object / Instance) Ιδιότητα (Attribute) Μέθοδος (Method) Κλήσεις σε αντικείμενα, μεθόδους αντικειμένων κτλ.

15 Δομημένος Προγραμματισμός 4 βασικές δομές Ακολουθία Επιλογή Επανάληψη Αναδρομή

16 Δομημένος Προγραμματισμός Divide and Conquer Αποσύνθεση μεγάλης κλίμακας προβλημάτων σε μικρότερα ανεξάρτητα Πρόγραμμα είναι μία συλλογή από διαδικασίες, όπου η καθεμία περιλαμβάνει μία ακολουθία εντολών

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

18 Παραδοσιακή αναπαράσταση

19 Αντικειμενοστρεφής αναπαράσταση

20 Αντικειμενοστρεφής προσέγγιση 3 βασικές έννοιες στην ΟΟ Τεχνολογία Αντικείμενα (Objects) Μηνύματα/Μέθοδοι (Messages/Methods) Κλάσεις (Classes) Μετάφραση στο δομημένο προγραμματισμό Μεταβλητές (variables) Κλήσεις συναρτήσεων (function calls) Τύποι δεδομένων (data types)

21 Δομημένος vs Αντικειμενοστρεφής Προγραμματισμός ΔΟΜΗΜΕΝΟΣ: εστιάζει σε διαδικασίες Οι δομές δεδομένων σχεδιάζονται έτσι ώστε να ταιριάζουν στις διαδικασίες Οι διαδικασίες και οι δομές δεδομένων συλλαμβάνονται στο χώρο των λύσεων Το σύστημα μοντελοποιείται ως συλλογή διαδικασιών ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ: εστιάζει σε αντικείμενα Τα αντικείμενα προέρχονται από το χώρο του προβλήματος Ερμηνεία μηνυμάτων από τα αντικείμενα Είναι ευκολότερη η κατηγοριοποίηση αντικειμένων Το σύστημα μοντελοποιείται ως συλλογή αλληλεπιδρώντων αντικειμένων

22 Εξέλιξη μεθόδων σχεδιασμού λογισμικού

23 Πλεονεκτήματα αντικειμενοστρεφούς προσέγγισης Πρέπει να προσπαθούμε να κάνουμε το λογισμικό αξιόπιστο και συντηρήσιμο Επαναληπτική ανάπτυξη προγραμμάτων Δεν χρειάζεται να καταλάβουμε τα πάντα από την αρχή Αποφεύγουμε κώδικα spaghetti Δεν χρειάζεται κάθε φορά να ξεκινάμε από την αρχή Καθώς αυξάνεται η πολυπλοκότητα, το κόστος ανάπτυξης αυξάνεται εκθετικά OOP (Object Oriented Programming επιταχύνει το χρόνο ανάπτυξης

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

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

26 Αντικείμενα και Κλάσεις Αντικείμενα Αναπαριστούν πράγματα από τον πραγματικό κόσμο ή από κάποιο χώρο προβλήματος (π.χ: το κόκκινο αυτοκίνητο στο parking ) Κλάσεις Αναπαριστούν όλα τα αντικείμενα ενός είδους (π.χ: αυτοκίνητο ) Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes, Michael Kölling

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

28 Παράδειγμα Κλάση: Περιγράφει μια οικογένεια οντοτήτων με ίδια χαρακτηριστικά και συμπεριφορά (δηλ. μια αφηρημένη οντότητα) Π.χ. σκύλος, τοστιέρα Στιγμιότυπο: Περιγράφει μια συγκεκριμένη οντότητα, που παράγεται από μια αντίστοιχη κλάση, στην οποία λέμε ότι ανήκει Π.χ. Πλούτο, η_τοστιέρα_μου

29 Στατικότητα Κλάσης Δυναμικότητα Στιγμιοτύπων Κλάσης Κλάση: αφηρημένη έννοια (π.χ. οι τηλεοράσεις γενικώς) Aντικείμενο: χειροπιαστή (απτή) οντότητα (η δική σου συγκεκριμένη συσκευή τηλεόρασης) Μια κλάση ορίζει τι είναι ένα αντικείμενο, αλλά δεν είναι αυτό καθ εαυτό ένα αντικείμενο. Π.χ. αν μιλάμε για την οντότητα γάτα, η κλάση είναι ο ορισμός της γάτας, αλλά δεν ταϊζουμε τον ορισμό της γάτας, αλλά μια συγκεκριμένη γάτα που έχουμε στο σαλόνι μας, ή που έχουν οι φίλοι μας, ή που συναντάμε κάπου κ.λ.π. Όταν γράφουμε ένα πρόγραμμα σε αντικειμενοστρεφή γλώσσα προγραμματισμού, δεν ορίζουμε στο πρόγραμμα μεμονωμένα αντικείμενα, αλλά κλάσεις αντικειμένων. Τα αντικείμενα δημιουργούνται από το πρόγραμμά μας κατά το χρόνο της εκτέλεσής του.

30 Στατικότητα Κλάσης Δυναμικότητα Στιγμιοτύπων Κλάσης Η κλάση είναι στατική περιγραφή συνόλου αντικειμένων ΕΝΩ κάθε αντικείμενο είναι μια δυναμική, πραγματική οντότητα Από κάθε κλάση μπορούν να δημιουργηθούν πολλά αντικείμενα - ανάλογα με τις ανάγκες του προβλήματος) κατά τη διάρκεια εκτέλεσης του προγράμματος (στιγμιότυπα instances) της κλάσης Κάθε κλάση δηλώνεται μόνο μια φορά σε ένα πρόγραμμα Η δήλωση της κλάσης δεν δεσμεύει χώρο στη μνήμη, αλλά το κάθε αντικείμενο που θα δημιουργηθεί στο χρόνο εκτέλεσης καταλαμβάνει χώρο στη μνήμη για κάθε ιδιότητα Η κλάση είναι μια compile-time οντότητα, το αντικείμενο αποτελεί run-time οντότητα

31 Στατικότητα Κλάσης Δυναμικότητα Στιγμιοτύπων Κλάσης Περιγραφή, Ορισμός, ΣΥΝΤΑΓΗ, ΚΑΛΟΥΠΙ ένα συγκεκριμένο αντικείμενο Κλάση Μία Δεν καταλαμβάνει χώρο στη μνήμη! Χειροπιαστές Οντότητες Αντικείμενα Πολλά Καταλαμβάνουν χώρο στη μνήμη

32 Ποια είναι κλάσεις και ποια αντικείμενα? Η ποδοσφαιρική ομάδα του Ολυμπιακού Ο παίκτης κ. Τάδε της ποδοσφαιρικής ομάδας του Παναθηναϊκού Έντομο Ελικόπτερο Ο υπάλληλος κ. Γεωργίου του ΟΤΕ Άνδρας Το αεροπλάνο που θα πραγματοποιήσει τη σημερινή πτήση των της Aegean για Ρώμη Εργαζόμενος Θαλάσσιο όχημα Το Πανεπιστήμιο Πειραιώς

33 Εντοπίστε ζεύγη με σχέση κλάσης αντικειμένου Ηλεκτρονική συσκευή Τηλεοπτική συσκευή Τηλεοπτική συσκευή Η τηλεόραση μάρκας τάδε, μεγέθους τάδε που έχω στο δωμάτιο μου Θηλαστικό Σκύλος Σκύλος Ο σκύλος του φίλου μου του Πέτρου που τον λένε Αζόρ Ορθογώνιο σχήμα Το ορθογώνιο με πάνω αριστερή κορυφή το σημείο (5,5) και κάτω δεξιά κορυφή το σημείο (10,3) Σχήμα Κυκλικό Σχήμα

34 Ορισμοί Ιδιότητα (attribute) Είναι μια μεταβλητή. Μπορεί να είναι: Αντικειμένου Μόνο του συγκεκριμένου αντικειμένου Κλάσης Όλων των αντικειμένων που περιλαμβάνει μια κλάση Κατ επέκταση και όλων των αντικειμένων των υποκλάσεων που περιλαμβάνει η κλάση Το σύνολο των ιδιοτήτων ενός αντικειμένου καθορίζουν την κατάστασή του (state)

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

36 Βασικές έννοιες αντικειμενοστρεφούς προσέγγισης Αντικείμενο (object) / Κλάση (class) Ιδιότητες (properties) Μέθοδοι (methods)

37 Βασικές έννοιες αντικειμενοστρεφούς προσέγγισης Η οργάνωση των κλάσεων χρησιμοποιείται για να γίνει το μοντέλο του φυσικού κόσμου. Σε αυτό, μεταξύ των άλλων βοηθούν και οι έννοιες: Ιεραρχίες (hierarchies) Κληρονομικότητα (inheritance) Οι ορισμοί των κλάσεων και οι ιεραρχίες τους προορίζονται για να αναπαραστήσουν ένα πρόβλημα ή τη λύση του.

38 Δομή αντικειμένου Στατικό μέρος (private) Δεδομένα (Μεταβλητές) Δυναμικό μέρος (public) Διαδικασίες (Μέθοδοι)

39 Αντικείμενο - παράδειγμα Σύστημα που ελέγχει ένα φράγμα σε ποταμό Φράγμα: αντικείμενο το οποίο διαθέτει Ιδιότητες / Καταστάσεις, πχ: πλήρως_ανοιχτό (όπου το νερό του ποταμού ρέει ανεμπόδιστα μέσω του φράγματος) πλήρως_κλειστό (όπου δεν επιτρέπεται σε νερό του ποταμού να περάσει διαμέσου του φράγματος) Μέθοδοι / Συμπεριφορές, πχ: προειδοποιεί: όταν το φράγμα πρόκειται να αλλάξει κατάσταση από την κλειστή ανοιχτή, μπορεί να στέλνει μια προειδοποίηση στους ανθρώπους που βρίσκονται για αναψυχή στις εκβολές του ποταμού, για να τους ειδοποιήσει ότι το επίπεδο του νερού του ποταμού πρόκειται να ανέβει.

40 Παραδείγματα κλάσεων... Κλάση Φυτό Ιδιότητες: ύψος, ηλικία, χρώμα φύλλων, ανθοφόρο Μέθοδοι: φυτεύεται, αναπτύσσεται, δημιουργεί χλωροφύλλη, μαραίνεται Αντικείμενα της κλάσης: κάθε ένα συγκεκριμένο φυτό από τα φυτά της βεράντας μας, κάθε συγκεκριμένο φυτό στα παρτέρια μιας συγκεκριμένης πλατείας ή ενός συγκεκριμένου κήπου κ.λ.π.

41 Παραδείγματα κλάσεων... Κλάση Μοτοσικλέτα Ιδιότητες: στοιχεία πινακίδων, μάρκα, μοντέλο, έτος κυκλοφορίας, τρέχουσα ταχύτητα, μέγιστη ταχύτητα, κυβισμός, τιμή Μέθοδοι: ξεκινά, κινείται, επιταχύνει, επιβραδύνει, φρενάρει, στρίβει, σταματά Αντικείμενα της κλάσης: η συγκεκριμένη μοτοσικλέτα που είναι παρκαρισμένη στο πάρκινγκ, μια Honda 250 με αριθμό κυκλοφορίας ΑΑΑ 1234, η μοτοσικλέτα του συμφοιτητή μου κ.λ.π

42 Προσδιορισμός Ιδιοτήτων Κλάσεων Όταν καλούμαστε να προσδιορίσουμε ιδιότητες (ή ιδιοχαρακτηριστικά) σε κλάσεις, θα πρέπει να θυμόμαστε ότι: Ιδιότητες είναι ότι περιγράφει την κατάσταση (state) κάθε αντικειμένου της κλάσης και θα πρέπει να μπορούν να παρασταθούν στο λογισμικό με μεταβλητές (variables) διαφόρων τύπων (ακέραιες, πραγματικές, λογικές (boolean) κλπ) ΔΕΝ συμπεριλαμβάνουμε στις ιδιότητες περιττές πληροφορίες, ούτε ιδιότητες που αποτελούν συνάρτηση άλλων.

43 Προσδιορισμός Μεθόδων Κλάσεων Όταν καλούμαστε να προσδιορίσουμε μεθόδους σε κλάσεις, θα πρέπει να θυμόμαστε ότι: Οι μέθοδοι είναι ενέργειες που μπορεί να εκτελέσουν τα αντικείμενα της κλάσης ή μπορούν να εκτελεστούν επί αυτών και στο λογισμικό παριστάνονται με τμήματα κώδικα που υλοποιούν τις λειτουργίες που απαιτούνται για να γίνουν αυτές οι ενέργειες.

44 Ποιες είναι ιδιότητες και ποιες είναι μέθοδοι των κλάσεων? Τηλεφωνική συσκευή: επανάληψη κλήσης, χρώμα, μέγεθος, μάρκα, πλήθος πλήκτρων Φυτό: ρίζες, φύλλα, λουλούδια, ποτίζεται, ύψος, ηλικία, χρώμα φύλλων Μοτοσικλέτα: τιμόνι, ρόδες, φρένο, χρώμα, μάρκα, κυβικά, τιμή, φρενάρισμα, εκκίνηση, μήκος Ορθογώνιο: μήκος, ύψος, μήκος διαγωνίου, υπολογισμός εμβαδού, υπολογισμός μήκους περιφέρειας

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

46 Μέθοδοι και μηνύματα Μέθοδος Οι μέθοδοι είναι οι πράξεις που εκτελεί ένα αντικείμενο όταν λαμβάνει ένα μήνυμα. Οι πράξεις μπορούν να εκτελούνται μόνο αν είναι γνωστές στο αντικείμενο. Το σύνολο των μεθόδων ενός αντικειμένου καθορίζει τη συμπεριφορά του Μηνύματα Τα αντικείμενα επικοινωνούν και αλληλεπιδρούν μεταξύ τους στέλνοντας μηνύματα. Τα μηνύματα είναι αιτήσεις που στέλνονται από ένα αντικείμενο σε ένα άλλο έτσι ώστε το τελευταίο να εκτελέσει μια μέθοδο/λειτουργία. Οποιαδήποτε επιπλέον πληροφορία απαιτείται δίνεται με το μήνυμα και αποτελεί τις παραμέτρους του μηνύματος

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

48 Αναπαράσταση κλάσεων - παράδειγμα Μάθημα Κωδικός μαθήματος Είδος Τίτλος Διδάσκων Προσθήκη Μαθήματος () Διαγραφή Μαθήματος () Μεταβολή στοιχείων Μαθήματος () Ανάθεση Μαθήματος ()

49 Αναπαράσταση κλάσεων - παράδειγμα Καθηγητής Αρ. Ταυτότητας Όνομα Επώνυμο Διεύθυνση Τηλέφωνο Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή ()

50 Αντικείμενα / Στιγμιότυπα - παράδειγμα Κάθε αντικείμενο είναι ένα στιγμιότυπο (instance) μιας κλάσης! ΔΗΛΑΔΗ κάθε στιγμιότυπο διαθέτει τις δικές του τιμές χαρακτηριστικών ΑΛΛΑ μοιράζεται τα ονόματα των χαρακτηριστικών και τις συμπεριφορές με τα υπόλοιπα στιγμιότυπα της κλάσης

51 Στιγμιότυπα κλάσεων (αντικείμενα) Μάθημα 01 Κωδικός μαθήματος: ΨΣ-502 Είδος: Κορμού Τίτλος: Αντικειμενοστρεφής Προγραμματισμός Διδάσκων: Β Προσθήκη Μαθήματος () Διαγραφή Μαθήματος () Μεταβολή στοιχείων Μαθήματος () Ανάθεση Μαθήματος ()

52 Στιγμιότυπα κλάσεων (αντικείμενα) Καθηγητής 01 Αρ. Ταυτότητας: Β Όνομα: Νικόλαος Επώνυμο: Νικολάου Διεύθυνση: Χ. Τρικούπη και Φάωνος Τηλέφωνο: Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή ()

53 Βασικές αρχές σχεδιασμού ΟΟΡ Ενθυλάκωση (encapsulation) Πολυμορφισμός (polymorphism) Κληρονομικότητα (inheritance)

54 Ενθυλάκωση Διαμερισματοποίηση (compartmentalisation) / ομαδοποίηση δομής και συμπεριφοράς έτσι ώστε οι λεπτομέρειες της υλοποίησης ενός αντικειμένου να είναι κρυμμένες

55 Ενθυλάκωση Οι ιδιότητες αποκρύπτονται από τη συμπεριφορά του αντικειμένου Δεν χρειάζεται να ξέρεις πώς λειτουργεί η μηχανή για να οδηγήσεις ένα αυτοκίνητο Μεγάλο μέρος της λειτουργικότητας είναι αόρατο Γυρίζεις ένα διακόπτη το ραδιόφωνο αρχίζει Πατάς ένα πετάλι το αυτοκίνητο επιταχύνει Η ενθυλάκωση είναι η τεχνική που πακετάρει τις πληροφορίες με τέτοιο τρόπο ώστε να αποκρύπτει αυτές που πρέπει να είναι κρυμμένες (βρίσκονται μέσα στην «κάψουλα» θύλακα) και να καθιστά ορατές αυτές που πρέπει να είναι ορατές.

56 Πολυμορφισμός «Πολλές μορφές» Είναι η ιδιότητα που επιτρέπει να σταλεί το ίδιο μήνυμα σε διαφορετικά αντικείμενα και το κάθε αντικείμενο να εκτελέσει μια λειτουργία που αντιστοιχεί στην κλάση που ανήκει (δυνατότητα χρήσης κοινών ονομάτων για διαφορετικές μεθόδους) Η εντολή accelerate είναι η ίδια ανεξαρτήτως για τα διαφορετικά αντικείμενα airplane, car, bus, κτλ Η κλάση των πολυγώνων. Για κάθε πολύγωνο υπολογίζεται το εμβαδό, αλλά ο υπολογισμός του εμβαδού ενός τριγώνου είναι διαφορετικός από τον υπολογισμό του εμβαδού ενός ορθογωνίου Η εντολή «παίξε το αγαπημένο σου άθλημα» σημαίνει διαφορετικά πράγματα για διαφορετικούς ανθρώπους. Για κάποιον σημαίνει μπάσκετ, για κάποιον άλλο ποδόσφαιρο.

57 Διαδικαστικός προγραμματισμός vs πολυμορφισμού

58 Κληρονομικότητα Φανταστείτε ένα πρόβλημα που έχει ως αντικείμενα πελάτες, υπαλλήλους κτλ Τόσο οι πελάτες όσο και οι υπάλληλοι είναι άνθρωποι Θα πρέπει να φτιάξω δύο κλάσεις. Κάποια από τα χαρακτηριστικά / λειτουργίες αυτών είναι κοινά. π.χ. ύψος, βάρος κλπ. Θα έχω πολλές φορές τον ίδιο κώδικα!!! Για να το αποφύγω και να έχω καλύτερη επαναχρησιμοποίηση δεδομένων και λειτουργιών. Ορίζω μια κλάση (γονέας), ονόματι άνθρωπος Αυτή θα συγκεντρώνει τα κοινά χαρακτηριστικά/λειτουργίες Από την κλάση αυτή θα κληρονομούν οι κλάσεις πελάτης και υπάλληλος (κλάσεις παιδιά)

59 Κληρονομικότητα Η δυνατότητα δημιουργίας νέων κλάσεων παίρνοντας ως βάση μία άλλη ήδη υπάρχουσα Η νέα κλάση θα έχει τα χαρακτηριστικά της παλιάς ενώ θα μπορεί να τα τροποποιήσει, να τα επεκτείνει και να προσθέσει καινούρια για να καλύψει συγκεκριμένες ανάγκες Δύο όψεις: Η κλάση-παιδί είναι εξειδίκευση (specialization) της κλάσης-γονέας Η κλάση-γονέας είναι γενίκευση (generalization) της κλάσης-παιδί

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

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

62 Κληρονομικότητα Vehicle Automobile Motorcycle Bus Sedan Sports Car School Bus Luxury Bus Τι ιδιότητες κληρονομεί κάθε όχημα από τον τύπο οχήματος που βρίσκεται πιο πάνω στο διάγραμμα?

63 Κληρονομικότητα - Παράδειγμα Εύκολη προσθήκη νέας κατηγορίας, π.χ. Διοικητικός υπάλληλος, γραμματεία

64 Ιστορία της Java Βασίστηκε στη γλώσσα C και C++ (SUN MICROSYSTEMS) Το αρχικό της όνομα ήταν Oak (βελανιδιά). Αναπτύχθηκε από τον James Gosling το 1991 για «έξυπνες» ηλεκτρονικές συσκευές Επειδή δεν αναπτύχθηκε η αγορά, το project κινδύνευσε να ακυρωθεί Με την έκρηξη του Internet το 1993,το project σώθηκε Η Java χρησιμοποιήθηκε για τη δημιουργία σελίδων με δυναμικό περιεχόμενο Η Java ανακοινώθηκε επίσημα το 1995

65 Java editions JavaTM JavaTM JavaTM aka Java 2 Platform JavaTM 2 Rel.1.3Stand.Ed.(J2SE) JavaTM 2 Rel. 1.4 J2SE JavaTM 2 Rel aka J2SE Java SE Java SE Java SE Java SE March 20 Java SE September 11 Java SE 11

66 Η Java και ο Παγκόσμιος Ιστός Ένα μέρος της επιτυχίας της Java οφείλεται στο γεγονός ότι είναι η πρώτη γλώσσα που σχεδιάστηκε για να εκμεταλλευτεί τη δύναμη του Παγκόσμιου Ιστού, ο οποίος είχε αναδειχθεί λίγο πριν την κυκλοφορία της Java το 1995 Πέρα από τα πιο παραδοσιακά προγράμματα εφαρμογών, η Java καθιστά δυνατή τη συγγραφή μικρών αλληλεπιδραστικών προγραμμάτων, που λέγονται μικροεφαρμογές (applets), τα οποία εκτελούνται κάτω από τον έλεγχο ενός browser

67 Βασικά Χαρακτηριστικά της Java Γλώσσα προγραμματισμού της εταιρίας SUN που αγοράστηκε από την Oracle Ανεξάρτητη πλατφόρμας λειτουργικού συστήματος και hardware, βάσει της τεχνολογίας Java Virtual Machine (JVM) Γλώσσα Αντικειμενοστρεφούς Προγραμματισμού (Object-Oriented) Διατίθεται δωρεάν το περιβάλλον εκτέλεσής της (runtime environment) και το περιβάλλον ανάπτυξης (development kit)

68 Βασικά Χαρακτηριστικά της Java Η Java σχεδιάστηκε με στόχο να είναι: Αντικειμενοστρεφής Κατανεμημένη Απλή Πολυνηματική (multi-threaded) Ασφαλής Ανεξάρτητη υπολογιστικής πλατφόρμας WORA (Write Once, Run Anywhere) Κατάλληλη για εφαρμογές στο Internet στον πελάτη (applets) και στον εξυπηρετητή (servlets)

69 Ανεξαρτησία.. Τι εννοούμε λέγοντας: «Η Java είναι ανεξάρτητη πλατφόρμας συστήματος»

70 Βασικά Χαρακτηριστικά της Java Παρέχει τυποποιημένες βιβλιοθήκες κλάσεων (Java class libraries) μέσω των οποίων υποστηρίζονται Γραφικά και γραφικές διεπαφές (GUI) Πολυμέσα Επικοινωνία πάνω σε δίκτυα Επαναχρησιμοποιούμενες συνιστώσες (components) Σύνδεση με βάσεις δεδομένων...

71 Java Class Libraries Προγράμματα Java Αποτελούνται από τμήματα που ονομάζονται classes Οι classes περιέχουν μεθόδους που επιτελούν κάποιον υπολογισμό Class libraries Γνωστές και σαν Java API (Applications Programming Interface) Πλούσια συλλογή από ήδη ορισμένες κλάσεις, έτοιμες για χρήση Δύο μέρη στην εκμάθηση της Java: Εκμάθηση της ίδιας της γλώσσας ώστε να μπορεί ο χρήστης να φτιάξει τις δικές του κλάσεις Εκμάθηση της χρήσης των ήδη υπαρχόντων class libraries

72 Η συμβατική διαδικασία προγραμματισμού Ένας compiler μεταφράζει πηγαίο κώδικα σε συγκεκριμένη γλώσσα κατάλληλη για συγκεκριμένο τύπο ΚΜΕ Ο linker συνδέει διάφορα προγράμματα αντικειμένου τα οποία έχουν αναπτυχθεί ανεξάρτητα

73 Παραδοσιακός τρόπος μεταγλώττισης προγραμμάτων Source code compiler Object code Linker Executable program Loader Running program Edit & Debug Libraries & other precompiled components

74 Java compilation & interpretation Source code Java compiler Java bytecodes Java interpreter or JVM Running program Edit & Debug Libraries

75 Στάδια κατά τη διεργασία προγραμματισμού Η Java χρησιμοποιεί μια υβριδική στρατηγική: Τα προγράμματα μεταγλωττίζονται σε μια ενδιάμεση γλώσσα που παίζει το ρόλο Γλώσσας Μηχανής για την Java Virtual Machine (JVM) Η Java μετά ερμηνεύει αυτά τα προγράμματα προσομοιώνοντας την JVM Το JRE (Java Running Environment) αποτελείται από τη JVM και τις τυποποιημένες βιβλιοθήκες κλάσεων

76 Η διεργασία μεταγλώττισης πηγαίο αρχείο #include <stdio.h> main() { printf("hello\n"); } μεταγλωττι στής Αντικειμενικό αρχείο άλλα αντικειμενικά αρχεία και βιβλιοθήκες πρόγραμμα σύνδεσης Εκτελέσιμο αρχείο

77 Ο (δι)ερμηνευτής Java πηγαίο αρχείο αρχείο class αρχειοθήκη JAR import acm.program.*; public class Hello public void run() { println("hello"); } } μεταγλωττι στής CA FE BA BE A C B 4C 6A 61 πρόγραμμα σύνδεσης CA FE BA BE A C B 4C 6A D 00 1F F A A C C άλλα αρχεία class D 00 1F F A A C C JVM hello Hello

78 Πώς δουλεύει η Java Ο Java compiler μεταφράζει Java source code σε μία ειδική αναπαράσταση που λέγεται bytecode Ο Java bytecode δεν είναι η γλώσσα μηχανής για οποιοδήποτε παραδοσιακό CPU Ένα άλλο εργαλείο λογισμικού, ο interpreter μεταφράζει το bytecode σε γλώσσα μηχανής και το εκτελεί Το JVM είναι ένα software layer που παρέχει μετάφραση μεταξύ Java byte codes και του λειτουργικού συστήματος

79 Η διαδικασία ανάπτυξης Java

80 Java εφαρμογές και applets Υπάρχουν δύο τύποι εφαρμογών Java Java applications Τρέχουν stand alone Java applets Τρέχουν σε browser Ενσωματωμένα σε HTML αρχείο Έχουν μεγαλύτερους περιορισμούς ασφαλείας

81 Λογισμικά για ανάπτυξη εφαρμογών σε Java ds/index.html Τρέχουσες εκδόσεις της γλώσσας, εκπαιδευτικό υλικό Για να αναπτύξετε προγράμματα χρειάζεται το Java Development Kit (JDK) διαθέτει εργαλεία για τη μεταγλώττιση και εκτέλεση ενός προγράμματος Java Για να εκτελέσετε προγράμματα χρειάζεται το Java Runtime Environment (JRE) διαθέτει εργαλεία μόνο για την εκτέλεση ενός προγράμματος Java Υπάρχουν εκδόσεις του περιβάλλοντος Java για Windows, Linux, Solaris, MacOS κά

82 Λογισμικά για ανάπτυξη εφαρμογών σε Java Java 2 Platform Standard Edition: ότι χρειάζεστε για την μεταγλώττιση και εκτέλεση εφαρμογών Java Eclipse: περιβάλλον ανάπτυξης για μεταφορά κώδικα σε οποιαδήποτε γλώσσα NetBeans: ενοποιημένο περιβάλλον ανάπτυξης, ένα από τα ευρύτερα χρησιμοποιούμενα, ελεύθερης διανομής εργαλεία ανάπτυξης Java

83 IDE Integrated Development Environment Ενοποιημένο περιβάλλον ανάπτυξης: software application που παρέχει εργαλεία στους computer programmers για software development. Ένα IDE συνήθως αποτελείται από: Source code editor Compiler και/ή interpreter Build automation εργαλεία Debugger Μερικές φορές, σύστημα ελέγχου εκδόσεων και διάφορα εργαλεία, τα οποία είναι ολοκληρωμένα για την απλοποίηση της κατασκευής ενός GUI. Πολλά σύγχρονα IDEs έχουν επίσης επιπλέον εργαλεία για αντικειμενοστρεφή ανάπτυξη λογισμικού

84 Πηγές/Acknowledgements H. M. Deitel, P. J. Deitel, Java Προγραμματισμός, Μ. Γκιούρδας D. Barnes, M. Kolling, Αντικειμενοστρεφής Προγραμματισμός σε Java, Κλειδάριθμος Βασίλης Χριστοφίδης, Αντικειμενοστρεφής Προγραμματισμός, Πανεπιστήμιο Κρήτης Κ. Τσαγκάρης, Εισαγωγή στις εφαρμογές της Java, Πανεπιστήμιο Πειραιώς

Πρακτικά Θέματα. Αντικειμενοστρεφής Προγραμματισμός 7/3/2016. Διαλέξεις. Διάρκεια μαθήματος. Παρουσιάσεις διαλέξεων επιπλέον χρήσιμο υλικό

Πρακτικά Θέματα. Αντικειμενοστρεφής Προγραμματισμός 7/3/2016. Διαλέξεις. Διάρκεια μαθήματος. Παρουσιάσεις διαλέξεων επιπλέον χρήσιμο υλικό Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 7/3/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πρακτικά Θέματα Διαλέξεις Δευτέρα 13:15-16:00,

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 20/2/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πρακτικά Θέματα Διαλέξεις Δευτέρα 13:15-16:00,

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Στόχοι μαθήματος Διάκριση και κατανόηση των υφιστάμενων

Διαβάστε περισσότερα

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) Πληροφορίες Μαθήματος Διαλέξεις Δευτέρα, Πέμπτη 10:30-12:00 Κτήριο ΘΕΕ01, Αίθουσα 202 Εργαστήριο Τετάρτη 10:30-12:00, Κτήριο ΘΕΕ01,

Διαβάστε περισσότερα

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος. Û ØÓÒ ÔÖÓ Ö ÑÑ Ø Ñ ¾ Ç Ö ÐÓ ØÛÒ ÙÔÓÐÓ ØôÒ Ο υπολογιστής είναι εργαλείο επίλυσης προβλημάτων λόγω: ταχύτητας υπολογισμού και μεγέθους μνήμης γενικής χρησιμότητας μέσω της έννοιας του προγραμματισμού. Η

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Γενικά Χαρακτηριστικά ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΓΕΝΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ

Διαβάστε περισσότερα

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

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Sites:

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr 1 Δομημένος προγραμματισμός έναντι αντικειμενοστρεφούς

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

Διαβάστε περισσότερα

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήρια Δευτέρα 18:00-20:00,Τρίτη

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) NetBeans, Πρώτα παραδείγματα ανάπτυξης Java εφαρμογών Στόχοι εργαστηρίου Εξοικείωση με τις βασικές

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 M8 Αντικειμενοστραφής Προγραμματισμός Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) NetBeans, Πρώτα παραδείγματα ανάπτυξης Java εφαρμογών Γαβαλάς Δαμιανός dgavalas@aegean.gr Στόχοι

Διαβάστε περισσότερα

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος: 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Εισαγωγή 2. Εντολές Εκχώρησης και Τελικές μεταβλητές 3. Μεταγλώττιση και διερμηνεία των

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν μια

Διαβάστε περισσότερα

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 Τμήμα θεωρίας: Κάθε Τρίτη, 11πμ-2μμ, ΑΜΦ22. Διδάσκων: Ντίνος Φερεντίνος email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό εργαστήριο (5-6 2ωρα εργαστήρια το εξάμηνο,

Διαβάστε περισσότερα

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Γλώσσες Προγραμματισμού - Μεταγλώττιση και Διερμηνεία -Η πλατφόρμα

Διαβάστε περισσότερα

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( ) ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Εισαγωγικές πληροφορίες για το μάθημα Τελευταία ενημέρωση: Οκτώβριος 2013 Γλώσσα αντικειμενοστραφούς προγραμματισμού υψηλού επιπέδου,

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 9: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Κωνσταντίνος Κουκουλέτσος Τμήμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ 1η διάλεξη (2012-13) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Γιατί να μάθει κανείς C++; Απαιτούμενο προσόν για πολλές θέσεις εργασίας. Υψηλού επιπέδου προγραμματισμός.

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν μια

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 18/4/216 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 6: Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

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

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

Διαβάστε περισσότερα

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( )

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( ) ΕΙΣΑΓΩΓΗ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Εισαγωγή στη C++ Ιστορικά στοιχεία για τη C/C++ Ένα βασικό πρόγραμμα Μεταγλώττιση ενός προγράμματος Τελευταία ενημέρωση: Σεπτέμβριος 2016

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού Κεφάλαιο 6 ο Διαχείριση στοιχείων λογισμικού Διδακτικοί στόχοι Να περιγραφούν οι κύριοι τύποι λογισμικού Να εξεταστεί το λογισμικό συστήματος και τα λειτουργικά συστήματα Να αναλυθούν οι πιο σημαντικές

Διαβάστε περισσότερα

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1 Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή

Διαβάστε περισσότερα

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

Διαβάστε περισσότερα

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

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

Διαβάστε περισσότερα

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα2 Προγραμματιστικά Περιβάλλοντα Δημιουργία Εφαρμογών 6.1 Γλώσσες και εργαλεία προγραμματισμού Τι είναι οι γλώσσες προγραμματισμού; Είναι οι τεχνητές γλώσσες στις οποίες γράφονται οι εντολές των

Διαβάστε περισσότερα

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

Διαβάστε περισσότερα

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

Διαβάστε περισσότερα

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M8 Αντικειμενοστραφής Προγραμματισμός Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ

Διαβάστε περισσότερα

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

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Χαρίδημος Κονδυλάκης Εισαγωγή ΟΡΓΑΝΩΣΗ ΜΑΘΗΜΑΤΟΣ Πληροφορίες Διδάσκοντα Διδάσκοντας: Χαρίδημος Κονδυλάκης Email: Kondylak@ics.forth.gr Εβδομαδιαίες Ώρες Διδασκαλίας: 2 ώρες

Διαβάστε περισσότερα

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

Διαβάστε περισσότερα

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

Διαβάστε περισσότερα

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

Διαβάστε περισσότερα

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 1 : Εισαγωγικές έννοιες Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

(Logic Gate Simulator)

(Logic Gate Simulator) Περιγραφή Άσκηση 21 Εξοµοιωτής Κυκλωµάτων Λογικών Πυλών () Στα πλαίσια της άσκησης LogicGateSimulator 1 θα αναπτύξετε ένα πρόγραµµα σύµφωνα µε το οποίο το σύστηµα θα σας επιτρέπει: 1. να ορίζετε ένα κύκλωµα

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 1 η Εισαγωγή στη Γλώσσα C Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

Διαβάστε περισσότερα

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

Διαβάστε περισσότερα

Κεφάλαιο 1: Εισαγωγή. 1.1 Οι γλώσσες προγραμματισμού

Κεφάλαιο 1: Εισαγωγή. 1.1 Οι γλώσσες προγραμματισμού Κεφάλαιο 1: Εισαγωγή Η Επιστήμη της Πληροφορικής (Computer Science) αποτελεί σήμερα μία από τις σημαντικότερες και πλέον εξελισσόμενες επιστήμες. Οι εφαρμογές της έχουν εισχωρήσει σε όλα τα πεδία της ερευνητικής

Διαβάστε περισσότερα

Δημιουργία προγραμμάτων Java

Δημιουργία προγραμμάτων Java 1ΚΕΦΑΛΑΙΟ Δημιουργία προγραμμάτων Java Σ αυτό το κεφάλαιο, θα μάθετε να κάνετε τα εξής: Ορισμός βασικής ορολογίας προγραμματισμού Σύγκριση διαδικαστικού και αντικειμενοστραφούς προγραμματισμού Περιγραφή

Διαβάστε περισσότερα

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

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

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

Υποδείγματα Ανάπτυξης

Υποδείγματα Ανάπτυξης Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης

Διαβάστε περισσότερα

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

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

Διαβάστε περισσότερα

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

Διαβάστε περισσότερα

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

Αρχές Τεχνολογίας Λογισμικού Αρχές Τεχνολογίας Λογισμικού Επισκόπηση του μαθήματος 2 Διδάσκοντες ΘΕΩΡΙΑ Νίκος Παπαδάκης ΕΡΓΑΣΤΗΡΙΟ Αϊβαλής Κώστας costis@teicrete.gr Κονδυλάκης Χάρης kondylak@gmail.com 3 Το μάθημα στο πρόγραμμα σπουδών

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

Διαβάστε περισσότερα

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων

Διαβάστε περισσότερα