Περιεχόµενα. Βασικές αρχές αντικειµενοστρεφούς. Κεφάλαιο 1 Αντικείµενα και κλάσεις Κεφάλαιο 2 Κατανόηση των ορισµών κλάσεων...

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

Download "Περιεχόµενα. Βασικές αρχές αντικειµενοστρεφούς. Κεφάλαιο 1 Αντικείµενα και κλάσεις Κεφάλαιο 2 Κατανόηση των ορισµών κλάσεων..."

Transcript

1

2

3 Περιεχόµενα Πρόλογος Πρόλογος για τον διδάσκοντα Καθοδηγούµενη ξενάγηση Κατάλογος των έργων που εξετάζονται αναλυτικά στο βιβλίο Ευχαριστίες Μέρος 1 Βασικές αρχές αντικειµενοστρεφούς προγραµµατισµού Κεφάλαιο 1 Αντικείµενα και κλάσεις Αντικείµενα και κλάσεις ηµιουργία αντικειµένων Κλήση µεθόδων Παράµετροι Τύποι δεδοµένων Πολλά στιγµιότυπα Κατάσταση Τι είναι ένα αντικείµενο; Αλληλεπίδραση αντικειµένων Πηγαίος κώδικας Ένα άλλο παράδειγµα Επιστρεφόµενες τιµές Αντικείµενα ως παράµετροι Σύνοψη Κεφάλαιο 2 Κατανόηση των ορισµών κλάσεων Μηχανές εισιτηρίων Εξέταση της συµπεριφοράς µιας απλοϊκής µηχανής εισιτηρίων Εξέταση του ορισµού µιας κλάσης... 67

4 8 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA 2.3 Πεδία, µέθοδοι, και κατασκευαστές Πεδία Κατασκευαστές Μεταβίβαση δεδοµένων µέσω παραµέτρων Ανάθεση Μέθοδοι πρόσβασης Μέθοδοι µετάλλαξης Εκτύπωση από µεθόδους Σύνοψη της απλοϊκής µηχανής εισιτηρίων Σκέψεις για τη σχεδίαση της µηχανής εισιτηρίων Πώς γίνονται επιλογές: η εντολή συνθήκης Ένα επιπλέον παράδειγµα εντολής συνθήκης Τοπικές µεταβλητές Πεδία, παράµετροι, και τοπικές µεταβλητές Σύνοψη της βελτιωµένης µηχανής εισιτηρίων Επαναληπτικές ασκήσεις Εξέταση ενός γνωστού παραδείγµατος Σύνοψη Κεφάλαιο 3 Αλληλεπίδραση αντικειµένων Το παράδειγµα του ρολογιού Αφαίρεση και δοµοστοιχειοποίηση Αφαίρεση στις εφαρµογές οµοστοιχειοποίηση στο παράδειγµα του ρολογιού Υλοποίηση της απεικόνισης του ρολογιού Σύγκριση διαγραµµάτων κλάσεων και διαγραµµάτων αντικειµένων Θεµελιώδεις τύποι και τύποι αντικειµένων Ο πηγαίος κώδικας της ClockDisplay Η κλάση NumberDisplay Συνένωση αλφαριθµητικών Ο τελεστής modulo Η κλάση ClockDisplay ηµιουργία αντικειµένων από αντικείµενα Ύπαρξη πολλών κατασκευαστών Κλήσεις µεθόδων Εσωτερικές κλήσεις µεθόδων Εξωτερικές κλήσεις µεθόδων Σύνοψη της απεικόνισης του ρολογιού...133

5 Περιεχόµενα Ένα επιπλέον παράδειγµα αλληλεπίδρασης αντικειµένων Το παράδειγµα του συστήµατος αλληλογραφίας Η λέξη-κλειδί this Χρήση αποσφαλµατωτή Καθορισµός σηµείων διακοπής Βηµατική εκτέλεση Βηµατική εκτέλεση µεθόδων εκ των έσω Επανεξέταση της κλήσης µεθόδων Σύνοψη Κεφάλαιο 4 Οµαδοποίηση αντικειµένων Οµαδοποίηση αντικειµένων σε συλλογές ευέλικτου µεγέθους Ένα προσωπικό σηµειωµατάριο Μια πρώτη µατιά σε κλάσεις βιβλιοθήκης Παράδειγµα χρήσης µιας βιβλιοθήκης οµές αντικειµένων µε συλλογές Γενικές κλάσεις Αρίθµηση µέσα σε συλλογές Αφαίρεση στοιχείου από συλλογή Επεξεργασία ολόκληρων συλλογών Ο βρόχος for-each Ο βρόχος while Εκτέλεση επαναλήψεων σε µια συλλογή Σύγκριση προσπέλασης µε δείκτη και χρήση επαναλήπτη Σύνοψη του παραδείγµατος µε το σηµειωµατάριο Ένα άλλο παράδειγµα: Ένα σύστηµα δηµοπρασιών Η κλάση Lot Η κλάση Auction Ανώνυµα αντικείµενα Χρήση συλλογών Σύνοψη συλλογών ευέλικτου µεγέθους Συλλογές σταθερού µεγέθους Αναλυτής αρχείων καταγραφής ήλωση µεταβλητών πίνακα ηµιουργία αντικειµένων πίνακα Χρήση αντικειµένων πίνακα Ανάλυση του αρχείου καταγραφής Ο βρόχος for Σύνοψη...191

6 10 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA Κεφάλαιο 5 Πιο εξελιγµένη συµπεριφορά Τεκµηρίωση για κλάσεις βιβλιοθήκης Το σύστηµα TechSupport Εξέταση του συστήµατος TechSupport Ανάγνωση του κώδικα Ανάγνωση της τεκµηρίωσης κλάσεων Σύγκριση διασυνδέσεων και υλοποίησης Χρήση µεθόδων µιας κλάσης βιβλιοθήκης Έλεγχος ισότητας αλφαριθµητικών Προσθήκη τυχαίας συµπεριφοράς Η κλάση Random Τυχαίοι αριθµοί σε ένα περιορισµένο εύρος Παραγωγή τυχαίων απαντήσεων Ανάγνωση τεκµηρίωσης για παραµετροποιηµένες κλάσεις Πακέτα και εισαγωγή (συµπερίληψη) Χρήση χαρτών για συσχετίσεις Η έννοια του χάρτη Χρήση HashMap Χρήση χάρτη για το σύστηµα TechSupport Χρήση συνόλων ιαίρεση αλφαριθµητικών Ολοκλήρωση του συστήµατος TechSupport Γραφή τεκµηρίωσης κλάσεων Χρήση του javadoc στο BlueJ Στοιχεία της τεκµηρίωσης κλάσεων Σύγκριση των λέξεων-κλειδιών public και private Απόκρυψη πληροφοριών Ιδιωτικές µέθοδοι και δηµόσια πεδία Εύρεση πληροφοριών για τις κλάσεις από τις διασυνδέσεις τους Μεταβλητές και σταθερές κλάσεων Η λέξη-κλειδί static Σταθερές Σύνοψη Κεφάλαιο 6 Αντικείµενα µε καλή συµπεριφορά Εισαγωγή Έλεγχος και αποσφαλµάτωση Έλεγχος µονάδων στο BlueJ Χρήση παραθύρων επιθεώρησης Σύγκριση θετικού και αρνητικού ελέγχου...250

7 Περιεχόµενα Αυτοµατοποίηση ελέγχων Έλεγχος παλινδρόµησης Αυτοµατοποιηµένη εξέταση αποτελεσµάτων ελέγχου Καταγραφή ενός ελέγχου Σύνολα προκαθορισµένων αντικειµένων ελέγχου οµοστοιχειοποίηση και διασυνδέσεις Ένα σενάριο αποσφαλµάτωσης Χρήση σχολίων και στυλ κώδικα Μη αυτόµατες περιηγήσεις Μια µη αυτόµατη περιήγηση υψηλού επιπέδου Έλεγχος κατάστασης µε µια περιήγηση Προφορικές περιηγήσεις Εντολές εκτύπωσης Ενεργοποίηση ή απενεργοποίηση των πληροφοριών αποσφαλµάτωσης Επιλογή µιας στρατηγικής ελέγχου Αποσφαλµατωτές Εφαρµογή των τεχνικών Σύνοψη Κεφάλαιο 7 Σχεδίαση κλάσεων Εισαγωγή Το παράδειγµα του παιχνιδιού world-of-zuul Εισαγωγή στις έννοιες της σύζευξης και της συνοχής Ύπαρξη πανοµοιότυπων τµηµάτων κώδικα Επεκτάσεις Η εργασία Εύρεση του σχετικού πηγαίου κώδικα Σύζευξη Χρήση ενθυλάκωσης για χαλάρωση της σύζευξης Σχεδίαση καθοδηγούµενη από αρµοδιότητες Αρµοδιότητες και σύζευξη Τοπικότητα των αλλαγών Έµµεση σύζευξη Πρόβλεψη πιθανών αλλαγών Συνοχή Συνοχή µεθόδων Συνοχή κλάσεων Συνοχή µε σκοπό την αναγνωσιµότητα Συνοχή µε σκοπό την επαναχρησιµοποίηση...312

8 12 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA 7.12 Αναπαραγοντοθέτηση Αναπαραγοντοθέτηση και έλεγχοι Ένα παράδειγµα αναπαραγοντοθέτησης Αναπαραγοντοθέτηση µε σκοπό την ανεξαρτησία από τη γλώσσα Απαριθµητοί τύποι Περαιτέρω χαλάρωση της σύζευξης στη διασύνδεση διαταγών Οδηγίες σχεδίασης Εκτέλεση χωρίς το BlueJ Μέθοδοι κλάσεων Η µέθοδος main Περιορισµοί των µεθόδων κλάσεων Σύνοψη Μέρος 2 οµές εφαρµογών Κεφάλαιο 8 Βελτίωση δοµής µε κληρονοµικότητα Το παράδειγµα/έργο DOME Κλάσεις και αντικείµενα της εφαρµογής DoME Ο πηγαίος κώδικας της εφαρµογής DoME Ανάλυση της εφαρµογής DoME Χρήση της κληρονοµικότητας Ιεραρχίες κληρονοµικότητας Η κληρονοµικότητα στην Java Κληρονοµικότητα και δικαιώµατα πρόσβασης Κληρονοµικότητα και αρχικοποίηση DoME: προσθήκη άλλων τύπων µέσων ψυχαγωγίας Πλεονεκτήµατα της κληρονοµικότητας (µέχρι τώρα) Ορισµός υποτύπων Υποκλάσεις και υποτύποι Υποτύποι και εντολές ανάθεσης Υποτύποι και µεταβίβαση παραµέτρων Πολυµορφικές µεταβλητές Προσαρµογή τύπου Η κλάση Object Αυτόµατη πλαισίωση και κλάσεις περιτύλιξης Ιεραρχία συλλογών Σύνοψη...367

9 Περιεχόµενα 13 Κεφάλαιο 9 Περισσότερα για την κληρονοµικότητα Το πρόβληµα: η µέθοδος print της εφαρµογής DοME Στατικός και δυναµικός τύπος Κλήση της µεθόδου print από την κλάση Database Υποσκέλιση υναµική αναζήτηση µεθόδων Κλήση της super σε µεθόδους Πολυµορφισµός µεθόδων Μέθοδοι της κλάσης Object: tostring Προστατευµένη πρόσβαση Ένα επιπλέον παράδειγµα κληρονοµικότητας µε υποσκέλιση Σύνοψη Κεφάλαιο 10 Άλλες τεχνικές αφαίρεσης Προσοµοιώσεις Η προσοµοίωση παρακολούθησης πληθυσµών αλεπούδων και κουνελιών Το έργο foxes-and-rabbits Η κλάση Rabbit Η κλάση Fox Η κλάση Simulator: διευθέτηση Η κλάση Simulator: ένα βήµα της προσοµοίωσης Ενέργειες για τη βελτίωση της προσοµοίωσης Αφηρηµένες κλάσεις Η υπερκλάση Animal Αφηρηµένες µέθοδοι Αφηρηµένες κλάσεις Περισσότερες αφηρηµένες µέθοδοι Πολλαπλή κληρονοµικότητα H κλάση Actor Ευελιξία µέσω της αφαίρεσης Επιλεκτική σχεδίαση Ορατοί συµµετέχοντες: πολλαπλή κληρονοµικότητα ιασυνδέσεις Η διασύνδεση Actor Πολλαπλή κληρονοµικότητα διασυνδέσεων ιασυνδέσεις ως τύποι ιασυνδέσεις ως προδιαγραφές Ένα επιπλέον παράδειγµα διασυνδέσεων Αφηρηµένη κλάση ή διασύνδεση; Σύνοψη της κληρονοµικότητας Σύνοψη...436

10 14 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA Κεφάλαιο 11 ηµιουργία διασυνδέσεων χρήστη µε γραφικά Εισαγωγή Συστατικά στοιχεία µιας διασύνδεσης, διάταξη, και χειρισµός συµβάντων Οι βιβλιοθήκες AWT και Swing Το παράδειγµα ImageViewer Τα πρώτα πειράµατα: δηµιουργία πλαισίου Προσθήκη απλών στοιχείων Προσθήκη µενού Χειρισµός συµβάντων Κεντρική λήψη συµβάντων Εσωτερικές κλάσεις Ανώνυµες εσωτερικές κλάσεις ImageViewer 1.0: η πρώτη πλήρης έκδοση Κλάσεις επεξεργασίας εικόνων Προσθήκη της εικόνας ιάταξη Ένθετοι αποδέκτες Φίλτρα εικόνων Πλαίσια διαλόγου ImageViewer 2.0: βελτίωση της δοµής του προγράµµατος ImageViewer 3.0: περισσότερα στοιχεία διασύνδεσης Κουµπιά Περιγράµµατα Περισσότερες επεκτάσεις Ένα ακόµα παράδειγµα: SoundPlayer Σύνοψη Κεφάλαιο 12 Χειρισµός σφαλµάτων Το έργο address-book Αµυντικός προγραµµατισµός Αλληλεπίδραση πελάτη-διακοµιστή Έλεγχος ορισµάτων Αναφορά σφαλµάτων διακοµιστή Ειδοποίηση του χρήστη Ειδοποίηση του αντικειµένου-πελάτη Αρχές παραγωγής εξαιρέσεων Παραγωγή µιας εξαίρεσης Κλάσεις εξαιρέσεων Το αποτέλεσµα µιας εξαίρεσης Ανέλεγκτες εξαιρέσεις Αποτροπή δηµιουργίας αντικειµένων...513

11 Περιεχόµενα Χειρισµός εξαιρέσεων Ελεγµένες εξαιρέσεις: ο όρος throws Σύλληψη εξαιρέσεων: η εντολή try Παραγωγή και σύλληψη πολλών εξαιρέσεων ιάδοση εξαίρεσης Το τµήµα finally Ορισµός νέων κλάσεων εξαιρέσεων Χρήση ισχυρισµών Έλεγχοι εσωτερικής συνέπειας Η εντολή assert Οδηγίες για τη χρήση των ισχυρισµών Ισχυρισµοί και το πλαίσιο ελέγχου µονάδων του BlueJ Ανάκαµψη από σφάλµατα και αποφυγή σφαλµάτων Ανάκαµψη από σφάλµατα Αποφυγή σφαλµάτων Περιπτωσιολογική µελέτη: είσοδος/έξοδος κειµένου Αναγνώστες, γραφείς και ρεύµατα Το έργο address-book-io Έξοδος κειµένου µε την κλάση FileWriter Είσοδος κειµένου µε την κλάση FileReader Scanner: ανάγνωση εισόδου από το τερµατικό Σειριοποίηση αντικειµένων Σύνοψη Κεφάλαιο 13 Σχεδίαση εφαρµογών Ανάλυση και σχεδίαση Η µέθοδος ρήµατος/ουσιαστικού Το παράδειγµα του συστήµατος κρατήσεων θέσεων κινηµατογράφου Εντοπισµός κλάσεων Χρήση καρτών CRC Σενάρια Σχεδίαση κλάσεων Σχεδίαση διασυνδέσεων κλάσεων Σχεδίαση διασύνδεσης χρήστη Τεκµηρίωση Συνεργασία Κατασκευή πρωτοτύπου Εξέλιξη του λογισµικού Μοντέλο καταρράκτη Επαναληπτική ανάπτυξη...558

12 16 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA 13.7 Χρήση προτύπων σχεδίασης οµή ενός προτύπου Πρότυπο Decorator Πρότυπο Singleton Μέθοδος Factory Πρότυπο Observer Σύνοψη των προτύπων Σύνοψη Κεφάλαιο 14 Μια περιπτωσιολογική µελέτη Η περιπτωσιολογική µελέτη Η περιγραφή του προβλήµατος Ανάλυση και σχεδίαση Εντοπισµός κλάσεων Χρήση καρτών CRC Σενάρια Σχεδίαση κλάσεων Σχεδίαση διασυνδέσεων κλάσεων Συνεργάτες Υλοποίηση διάρθρωσης Έλεγχος Ορισµένες εκκρεµότητες Αναδροµική ανάπτυξη Βήµατα ανάπτυξης Ένα πρώτο στάδιο Έλεγχος του πρώτου σταδίου Ένα επόµενο στάδιο ανάπτυξης Άλλες ιδέες για ανάπτυξη Επαναχρησιµοποίηση Ένα ακόµα παράδειγµα Ένα βήµα πιο πέρα Παραρτήµατα Α Χρήση έργων του BlueJ Β Τύποι δεδοµένων της Java Γ οµές ελέγχου της Java Τελεστές Ε Εκτέλεση της Java χωρίς το BlueJ ΣΤ ιευθέτηση του BlueJ Ζ Χρήση του αποσφαλµατωτή Η Εργαλεία JUnit για έλεγχο µονάδων...621

13 Περιεχόµενα 17 Θ Javadoc Ι Οδηγός στυλ προγραµµατισµού Κ Σηµαντικές κλάσεις βιβλιοθήκης Ευρετήριο

14

15 ΚΕΦΑΛΑΙΟ Οµαδοποίηση αντικειµένων Βασικές έννοιες κεφαλαίου: συλλογές (collections) βρόχοι (loops) επαναλήπτες (iterators) πίνακες (arrays) οµές της Java που παρουσιάζονται στο κεφάλαιο: ArrayList, Iterator, βρόχος while, null, προσαρµογή τύπου, ανώνυµα αντικείµενα, πίνακας, βρόχος for, βρόχος for-each, τελεστής ++ ArrayList 4.1 Οµαδοποίηση αντικειµένων σε συλλογές µεταβλητού µεγέθους

16 148 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA 4.2 Ένα προσωπικό σηµειωµατάριο

17 Κεφάλαιο 4 Οµαδοποίηση αντικειµένων 149 Άσκηση 4.1 Ανοίξτε το έργο notebook1 στο περιβάλλον του BlueJ και δηµιουργήστε ένα αντικεί- µενο Notebook. Αποθηκεύστε µερικές σηµειώσεις σε αυτό είναι απλά αλφαριθµητικά και έπειτα ελέγξτε αν ο αριθµός των σηµειώσεων που επιστρέφεται από τη µέθοδο numberofnotes συµφωνεί µε τον αριθµό των σηµειώσεων που πραγµατικά αποθηκεύσατε. Όταν χρησιµοποιήσετε τη µέθοδο shownote, θα χρειαστεί να χρησιµοποιήσετε ως τιµή παραµέτρου το 0 (µηδέν) για να τυπωθεί η πρώτη σηµείωση, το 1 (ένα) για να τυπωθεί η δεύτερη σηµείωση, κ.ο.κ. Θα εξηγήσουµε τον λόγο γι αυτή την αρίθµηση στη συνέχεια. Έννοια: Οι συλλογές είναι αντικείµενα που µπορούν να αποθηκεύουν οποιονδήποτε αριθµό άλλων αντικειµένων. 4.3 Μια πρώτη µατιά σε κλάσεις βιβλιοθήκης new Notebook ArrayList java.util ArrayList Παράδειγµα χρήσης µιας βιβλιοθήκης Notebook ArrayList

18 150 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA Κώδικας 4.1 Η κλάση Notebook import java.util.arraylist; /** * Κλάση διατήρηση λίστα για οποιονδήποτε αριθµό σηµειώσεων. * Οι σηµειώσει αριθµούνται για εξωτερική αναφορά από το χρήστη. * Σε αυτή την έκδοση, οι αριθµοί των σηµειώσεων ξεκινάνε από το 0. * David J. Barnes and Michael Kölling */ public class Notebook { // Αποθηκευτικό χώρο για οποιονδήποτε αριθµό σηµειώσεων. private ArrayList<String> notes; /** * Εκτέλεση οποιασδήποτε ενέργεια αρχικοποίηση απαιτείται για το * σηµειωµατάριο. */ public Notebook() { notes = new ArrayList<String>(); } /** * Αποθήκευση µια νέα σηµείωση στο σηµειωµατάριο. note Η σηµείωση που πρόκειται να αποθηκευτεί. */ public void storenote(string note) { notes.add(note); } /** Ο τρέχων αριθµό σηµειώσεων στο σηµειωµατάριο. */ public int numberofnotes() { return notes.size(); } /** * Εµφάνιση σηµείωση. notenumber Ο αριθµό τη σηµείωση που θα εµφανιστεί. */

19 Κεφάλαιο 4 Οµαδοποίηση αντικειµένων 151 } public void shownote(int notenumber) { if(notenumber < 0) { // Αυτό δεν είναι έγκυρο αριθµό σηµείωση, // οπότε να µη γίνει καµία ενέργεια. } else if(notenumber < numberofnotes()) { // Αυτό είναι έγκυρο αριθµό σηµείωση, // οπότε µπορεί να τυπωθεί. System.out.println(notes.get(noteNumber)); } else { // Αυτό δεν είναι έγκυρο αριθµό σηµείωση, // οπότε να µη γίνει καµία ενέργεια. } } import java.util.arraylist; ArrayList java.util ArrayList Notebook notes private ArrayList<String> notes; String <String> ArrayList String ArrayList<String> notes Array- List<String> notes

20 152 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA notes = new ArrayList<String>(); ArrayList ArrayList add size get storenote numberofnotes add ArrayList size 4.4 οµές αντικειµένων µε συλλογές ArrayList Notebook Εικόνα 4.1 Ένα αντικείµενο Notebook που περιέχει δύο σηµειώσεις

21 Κεφάλαιο 4 Οµαδοποίηση αντικειµένων 153 ArrayList size Εικόνα 4.2 Ένα αντικείµενο Notebook που περιέχει τρεις σηµειώσεις Notebook ArrayList<String> ArrayList ArrayList

22 154 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA ArrayList Notebook numberofnotes ArrayList notes 4.5 Γενικές κλάσεις notes ArrayList<String> ArrayList ArrayList ArrayList ArrayList private ArrayList<Person> members; private ArrayList<TicketMachine> mymachines;

23 Κεφάλαιο 4 Οµαδοποίηση αντικειµένων 155 members ArrayList Person mymachines ArrayList TicketMachine ArrayList- <Person> ArrayList<TicketMachine> Άσκηση 4.2 Γράψτε την εντολή δήλωσης ενός ιδιωτικού (private) πεδίου µε όνοµα library που µπορεί να αποθηκεύσει µια ArrayList. Τα στοιχεία της ArrayList είναι τύπου Book. ArrayList 4.6 Αρίθµηση µέσα σε συλλογές ArrayList shownote ArrayList get shownote [0 (size-1)] get get Παγίδα Αν δεν είστε προσεκτικοί, µπορεί να προσπαθήσετε να προσπελάσετε ένα στοιχείο συλλογής που είναι εκτός των επιτρεπτών ορίων της ArrayList. Όταν γίνει αυτό, θα εµφανιστεί ένα µήνυµα λάθους. Ένα τέτοιο σφάλµα ονοµάζεται index-out-of-bounds (δείκτης εκτός ορίων). Στην Java θα δείτε ένα µήνυµα IndexOutOfBoundsException (εξαίρεση δείκτη εκτός ορίων).

24

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Σχεδίαση Κλάσεων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.11.19 Εισαγωγή 2 ιαρκής συντήρηση και επέκταση λογισµικού Οι εταιρίες συνήθως συντηρούν, επεκτείνουν

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

4 Συλλογές Αντικειμένων

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

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

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

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

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

Περιεχόμενα. Πρόλογος 19 Εισαγωγή 21 Κατάλογος των έργων που εξετάζονται αναλυτικά στο βιβλίο 35 Ευχαριστίες 39

Περιεχόμενα. Πρόλογος 19 Εισαγωγή 21 Κατάλογος των έργων που εξετάζονται αναλυτικά στο βιβλίο 35 Ευχαριστίες 39 Περιεχόμενα Πρόλογος 19 Εισαγωγή 21 Κατάλογος των έργων που εξετάζονται αναλυτικά στο βιβλίο 35 Ευχαριστίες 39 Mέρος 1 Βασικές αρχές αντικειμενοστρεφούς προγραμματισμού 41 Κεφάλαιο 1 Αντικείμενα και κλάσεις

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

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

Περιεχόμενα. Πρόλογος 15 Περιεχόμενα Πρόλογος 15 1 Δημιουργία προγραμμάτων Java 25 Ορισμός βασικής ορολογίας προγραμματισμού 26 Σύγκριση διαδικαστικού και αντικειμενοστρεφούς προγραμματισμού 29 Διαδικαστικός προγραμματισμός 29

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

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

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

Προγράμματα με δομή Κληρονομικότητας

Προγράμματα με δομή Κληρονομικότητας Προγράμματα με δομή Κληρονομικότητας Η μέθοδος print της εφαρμογής DoME Η μέθοδος print στην κλάση Item τυπώνει: title: A Swingin Affair (64 mins) my favorite Sinatra album title: O Brother, Where Art

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12 Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

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

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

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

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

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

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

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

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

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

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

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

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

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

Προγράμματα με δομή Κληρονομικότητας

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

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

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

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

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

Περιεχόμενα. Πρόλογος 15 Περιεχόμενα Πρόλογος 15 1 Δημιουργία προγραμμάτων Java 25 Εκμάθηση ορολογίας προγραμματισμού 26 Σύγκριση των εννοιών του διαδικαστικού και του αντικειμενοστραφούς 29 Διαδικαστικός προγραμματισμός 29 Αντικειμενοστραφής

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

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

Το πρόγραμμα 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 υποστηρίζει

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

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

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

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

Περιεχόµενα. 1 Tο βιβλίο "µε µια µατιά" Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access...

Περιεχόµενα. 1 Tο βιβλίο µε µια µατιά Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access... Περιεχόµενα Ευχαριστίες... 11 1 Tο βιβλίο "µε µια µατιά"...13 Χωρίς τεχνικούς όρους!... 13 Σύντοµη παρουσίαση... 14 Μερικές συµβάσεις... 16 Μία τελευταία λέξη (ή και δύο)... 16 2 Εισαγωγή στη Microsoft

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28

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

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

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

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

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

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

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

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

Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του

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

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

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

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται

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

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

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

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

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

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

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

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

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

Ευχαριστίες...xi Εισαγωγή...xiii. ΚΕΦΑΛΑΙΟ 1 Άνοιγµα και εκτέλεση ενός προγράµµατος Visual Basic.NET

Ευχαριστίες...xi Εισαγωγή...xiii. ΚΕΦΑΛΑΙΟ 1 Άνοιγµα και εκτέλεση ενός προγράµµατος Visual Basic.NET Ευχαριστίες...xi Εισαγωγή...xiii ΜΕΡΟΣ 1 Ξεκίνηµα µε τη Microsoft Visual Basic.NET 2003... 1 ΚΕΦΑΛΑΙΟ 1 Άνοιγµα και εκτέλεση ενός προγράµµατος Visual Basic.NET 2003...3 Το περιβάλλον ανάπτυξης του Visual

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

Περιεχόµενα. Πρόλογος...15

Περιεχόµενα. Πρόλογος...15 Περιεχόµενα Πρόλογος...15 Κεφάλαιο 1: Εισαγωγή...17 Τι είναι η Java... 17 Η ιστορία της Java... 21 Εκδόσεις της Java... 23 Ξεκίνηµα µε την Java... 24 Το περιβάλλον της γλώσσας... 28 ηµιουργία µιας εφαρµογής

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

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

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

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

Γλώσσες Προγραμματισμού

Γλώσσες Προγραμματισμού Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

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

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος

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

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

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

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

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

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19 Περιεχόµενα Ευχαριστίες... 17 Εισαγωγή... 19 Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional 1 Εισαγωγή στη διαχείριση των Microsoft Windows XP Professional... 25 Ξεκίνηµα µε τα Windows XP

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

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

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

Προσομοίωση παρακολούθησης πληθυσμών αλεπούδων και κουνελιών

Προσομοίωση παρακολούθησης πληθυσμών αλεπούδων και κουνελιών Άλλες τεχνικές αφαίρεσης Προσομοίωση παρακολούθησης πληθυσμών αλεπούδων και ρ μ η ρ η ης η μ κουνελιών Άλλες τεχνικές αφαίρεσης public class Fox { private static final int BREEDING_AGE = 10; private static

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

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

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

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

Αρχικοποίηση Αντικειµένων & Κλάσεων στη Java Object Instantiation & Class Initialisation Κώστας Σαΐδης saiko@di.uoa.gr http://daemon.di.uoa.gr/daemon/issue4 Μάρτιος 2004 Η Αρχή είναι το ήµισυ του Παντός

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

Βασικά της γλώσσας JAVA

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

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω. Εργαλεία του JDK Β.1 Εργαλεία του JDK Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω. O µεταγλωττιστής (compiler) της Java javac. O διερµηνευτής (interpreter) της Java java. Το υπεύθυνο εργαλείο για

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

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

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

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

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

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

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

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

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2016-2017 ΕΡΓΑΣΙΑ 1 (JAVA) Παράδοση 26/4/2017 Στα πλαίσια της εργασίας θα υλοποιηθεί ένα απλοϊκό πρόγραμμα κρατήσεων Ξενοδοχείων. Για απλοποίηση θα περιοριστούμε

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

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης Αντικειµενοστραφής Σχεδίαση Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Κλάσεις Τροποποιητές, ιασυνδέσεις, Πακέτα Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Υπάρχουν 4τροποποιητές: default, public, private, protected. Default: εν προηγείται τροποποιητής του ονόµατος

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

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

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

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

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων 1 Γενικά Εξαιρετικά σηµαντικά: η απόφαση για το που ανήκουν οι µέθοδοι, και πως αλληλεπιδρούν τα αντικείµενα

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

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

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1 Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί

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

Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 21

Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 21 Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel...3 1.1 Τι νέο υπάρχει στο Excel 2016...4 1.1.1 Νέες λειτουργίες του Excel 2016...4 1.2 Διάφοροι τρόποι εκκίνησης του Excel...6 1.3 Εξοικείωση με το περιβάλλον

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

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

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

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

6. Εξαιρέσεις στη γλώσσα Java

6. Εξαιρέσεις στη γλώσσα Java 6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις

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

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

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

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

Week. 6: Java Collections

Week. 6: Java Collections Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται

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

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ 1. ΔΗΜΙΟΥΡΓΙΑ ΕΓΓΡΑΦΩΝ ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ 1.1. Ορισµός εγγράφου, προτύπου, πρωτεύοντος και δευτερεύοντος εγγράφου 1.2. Πρότυπα 1.2.1. Δηµιουργία, µεταβολή, χρήση και διαγραφή προτύπων εγγράφων 1.2.2.

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

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

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

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

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

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

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

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

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

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

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

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

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

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

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

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

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

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

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

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading Μονοδιάστατοι πίνακες Οι πίνακες είναι µεταβλητές που έχουν οµαδοποιηθεί µε ένα κοινό όνοµα. ηµιουργία πινάκων µετηδήλωσηnew

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

Generics και ArrayLists

Generics και ArrayLists ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Generics και ArrayLists Προσοχή!!! Να εκτελεστούν πρώτα όλες οι ασκήσεις τις Θεωρίας

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

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

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

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

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

BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος)

BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος) BloodShed Dev C++ Οδηγίες Χρήσης (Συγγραφέας: Πάρις Πολύζος) Σκοπός του οδηγού αυτού είναι να σας εξοικειώσει µε το BloodShed Dev C++, ένα από τα περιβάλλοντα που µπορείτε να χρησιµοποιήσετε στα πλαίσια

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Ανάλυση Πληροφοριακών Συστημάτων Εαρινό Εξάμηνο 2018-2019 Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Διαγράμματα Κλάσεων Τα βασικά στοιχεία Διαλέξεις παρουσιάσεις Το υλικό του μαθήματος στηρίζεται

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

Περιεχόμενα ΜΕΡΟΣ 1. Πρόλογος... xiii. 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 23

Περιεχόμενα ΜΕΡΟΣ 1. Πρόλογος... xiii. 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 23 Περιεχόμενα Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel...3 1.1 Τι νέο υπάρχει στο Excel 2016...4 1.1.1 Νέες λειτουργίες του Excel 2016...4 1.2 Διάφοροι τρόποι εκκίνησης του Excel...6 1.3 Εξοικείωση

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραµµατισµού

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