Γλώσσες Προγραµµατισµού II. (Aντικειµενοστρεφής Προγραµµατισµός)

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

Download "Γλώσσες Προγραµµατισµού II. (Aντικειµενοστρεφής Προγραµµατισµός)"

Transcript

1 Γλώσσες Προγραµµατισµού II (Aντικειµενοστρεφής Προγραµµατισµός)

2

3 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος Γ' Γλώσσες Προγραµµατισµού II (Aντικειµενοστρεφής Προγραµµατισµός) KΛΕΑΝΘΗΣ ΘΡΑΜΠΟΥΛΙ ΗΣ Eπίκουρος Kαθηγητής Tµήµατος Hλεκτρολόγων Mηχανικών & Tεχνολογίας Yπολογιστών Πανεπιστηµίου Πατρών ΠATPA 2001

4 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος Γ' Γλώσσες Προγραµµατισµού II (Aντικειµενοστρεφής Προγραµµατισµός) Συγγραφή KΛΕΑΝΘΗΣ ΘΡΑΜΠΟΥΛΙ ΗΣ Eπίκουρος Kαθηγητής Tµήµατος Hλεκτρολόγων Mηχανικών & Tεχνολογίας Yπολογιστών Πανεπιστηµίου Πατρών Κριτική Ανάγνωση OMHPOΣ PAΓΓOΣ Λέκτορας Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΣΩKPATHΣ KATΣIKAΣ Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Aιγαίου Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση ΓEPAΣIMOΣ MΩPAΪTHΣ Γλωσσική Επιµέλεια BAΣIΛIKH HMHTPOΠOYΛOY Τεχνική Επιµέλεια ΕΣΠΙ ΕΚ ΟΤΙΚΗ Ε.Π.Ε. Καλλιτεχνική Επιµέλεια Σελιδοποίηση TYPORAMA Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / ISBN: Kωδικός Έκδοσης: ΠΛH 24/3 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, Πάτρα Τηλ: (0610) , Φαξ: (0610) Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

5 ÂÚÈ fiìâó K º π 1 B ÛÈÎ ŒÓÓÔÈ ÙË AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊÔ appleúôû ÁÁÈÛË Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Aντικείµενο Kλάση Στιγµιότυπο Τo σύστηµα στην AΠ ηµιουργία Kαταστροφή αντικειµένου Aντικειµενοστρεφής προσέγγιση ανάπτυξης συστηµάτων λογισµικού Σύνοψη Bιβλιογραφία K º π 2 EÈÛ ÁˆÁ ÛÙË Java Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Iστορία της Java ιαδικασία ανάπτυξης προγράµµατος Java ιαδικασία ανάπτυξης αυτόνοµης εφαρµογής ιαδικασία ανάπτυξης Applet H εξήγηση ενός απλού Applet Σύνοψη Bιβλιογραφία K º π 3 KÏ ÛË Î È AÓÙÈΠÌÂÓÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Γιατί κλάση και στιγµιότυπο; H κλάση στην Java ήλωση κλάσης ηµιουργία στιγµιότυπου Πέρασµα µηνυµάτων Προσπέλαση στα δεδοµένα αντικειµένου... 49

6 6 ø ƒ ƒ ªª π ª À II Ενθυλάκωση ηµιουργοί αντικειµένων Μηχανισµός δηµιουργίας στιγµιότυπου Ορισµός δηµιουργού Πολλαπλοί δηµιουργοί Υπερφόρτωση µεθόδων Απλοποιηµένη συγγραφή δηµιουργών Mεταβλητές και µέθοδοι κλάσης Μεταβλητές κλάσης Σταθερή Κλάσης Μέθοδοι κλάσης Σύνοψη Bιβλιογραφία K º π 4 H Java Û Ó Âapple ÎÙ ÛË ÙË C Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Tύποι δεδοµένων O τύπος Boolean Τύπος δείκτη Τύποι αναφοράς Τύπος πίνακα Αλφαριθµητικά Tελεστές Προτάσεις ελέγχου ροής προγράµµατος Προτάσεις if/else, while και do/while H πρόταση switch Η πρόταση for Οι προτάσεις break και continue Η πρόταση goto Λοιπές διαφορές της Java από την C Σύνοψη Bιβλιογραφία... 81

7 EPIEXOMENA 7 K º π 5 H KÏ ÛË Û Ó ÔÌÈÎfi ÙÔÈ Â Ô ÙÔ ÚÔÁÚ ÌÌ ÙÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Oι κλάσεις δεν είναι ανεξάρτητες µεταξύ τους Σχέσεις αντικειµένων Συσχετίσεις µεταξύ κλάσεων Προσδιοριστές ορατότητας Kατηγορίες κλάσεων Κλάσεις δηλωµένες σε εµβέλεια πακέτου Ένθετες κλάσεις Σύνοψη Bιβλιογραφία K º π 6 KÏËÚÔÓÔÌÈÎfiÙËÙ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Απλή κληρονοµικότητα Γενικά Προσθήκη νέας κλάσης Πολλαπλή κληρονοµικότητα Πολυµορφισµός H κληρονοµικότητα στη Java Ορισµός απόγονης κλάσης Αφηρηµένες κλάσεις Κάθε κλάση έχει µια πρόγονο κλάση Οι δηµιουργοί στην κληρονοµικότητα Επικαλυπτόµενες µεταβλητές Υπερκάλυψη µεθόδων Interfaces Σύνοψη ενότητας Σύνοψη Bιβλιογραφία

8 8 ø ƒ ƒ ªª π ª À II K º π 7 AÓ appleù ÍË AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊÔ EÊ ÚÌÔÁ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Αναγνώριση Αντικειµένων Ορισµός βασικών λειτουργιών ηµιουργία πρώτης έκδοσης του προγράµµατος της αριθµοµηχανής Ολοκλήρωση της κλάσης Operand Ανάπτυξη γραφικής διεπαφής (GUI) µε τον χρήστη Ανταλλαγή µηνυµάτων µεταξύ µηχανής και αντικειµένων διεπαφής Σύνοψη Bιβλιογραφία K º π 8 XÂÈÚÈÛÌfi EÍ ÈÚ ÛÂˆÓ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις H έννοια του χειρισµού εξαιρέσεων Xειρισµός εξαιρέσεων στην Java Βασικές έννοιες Η κατασκευή try/catch/finally Προσθέτοντας χειρισµό εξαιρέσεων ήλωση τύπων εξαίρεσης Έγερση εξαίρεσης Σύνοψη Bιβλιογραφία K º π 9 T Ùfi ÚÔÓÔ ÚÔÁÚ ÌÌ ÙÈÛÌfi Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Bασικές έννοιες ταυτόχρονου προγραµµατισµού Yποστήριξη ταυτόχρονου προγραµµατισµού από την Java

9 EPIEXOMENA Η κλάση Thread Κύκλος ζωής ενός νήµατος Συγχρονισµός νηµάτων Οι µέθοδοι wait και notify Σύνοψη ενότητας Λύση στο πρόβληµα παραγωγού καταναλωτή Αντιµετώπιση χωρίς συγχρονισµό Aντιµετώπιση µε συγχρονισµό Σύνοψη Bιβλιογραφία Aπαντήσεις ασκήσεων αυτοαξιολόγησης Eνδεικτικές απαντήσεις δραστηριοτήτων Bιβλιογραφία ελληνική / ξενόγλωσση Γλωσσάρι Όρων

10

11 B ÛÈÎ ŒÓÓÔÈ ÙË AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊÔ appleúôû ÁÁÈÛË ÎÔapplefi Σκοπός του κεφαλαίου είναι να παρουσιάσει τις σηµαντικότερες έννοιες της αντικειµενοστρεφούς προσέγγισης µέσα από παραδείγµατα της καθηµερινής ζωής, δίνοντας έµφαση κυρίως στις έννοιες αυτές καθ εαυτές, παρά στον ακριβή ορισµό τους. 1 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Όταν θα έχετε µελετήσει το κεφάλαιο αυτό θα µπορείτε να: περιγράψετε τη διαφορά µεταξύ κλάσης και στιγµιότυπου, δώσετε 5 τουλάχιστον παραδείγµατα κλάσεων, αναφέρετε αντικείµενα του πραγµατικού κόσµου που περιγράφονται από τις παραπάνω κλάσεις, εντοπίζετε σχέσεις γενίκευσης εξειδίκευσης µεταξύ κλάσεων, εντοπίζετε σχέσεις συνάθροισης µεταξύ κλάσεων, δώσετε από 3 τουλάχιστο σχέσεις γενίκευσης εξειδίκευσης και συνάθροισης, περιγράψετε 2 τουλάχιστο συστήµατα του πραγµατικού κόσµου σαν συνάθροιση συνεργαζόµενων αντικειµένων, εξηγήσετε γιατί είναι σηµαντική η έννοια της απόκρυψης πληροφορίας, αναφέρετε 5 τοµείς στους οποίους η αντικειµενοστρεφής προσέγγιση βελτιώνει την ποιότητα του λογισµικού, περιγράψετε τί είναι ένα αντικειµενοστρεφές περιβάλλον ανάπτυξης, δώσετε ένα ορισµό για τον όρο αντικείµενο. ŒÓÓÔÈ ÎÏÂÈ È αντικείµενο (object) κλάση (class) στιγµιότυπο (instance) σχέση κλάσεων γενίκευση/ εξειδίκευση συνάθροιση (aggregation) απόκρυψη πληροφορίας (information hiding)

12 12 º π 1: B π π A π πª ƒ º À ƒ π πέρασµα µηνύµατος (message passing) δηµιουργία καταστροφή αντικειµένου διεπαφή αντικειµένου (object interface) διάγραµµα κλάσεων (class diagram) υλοποίηση αντικειµένου (object implementation) ÈÛ ÁˆÁÈÎ Ú ÙËÚ ÛÂÈ Η παραδοσιακή προσέγγιση στην ανάπτυξη συστηµάτων, την οποία ήδη γνωρίσατε στη Θεµατική Ενότητα «Εισαγωγή στην Πληροφορική», θεωρεί τη διεργασία σαν βασικό δοµικό στοιχείο του συστήµατος, το οποίο αποτελείται από διεργασίες και από δεδοµένα πάνω στα οποία αυτές επιδρούν. Η προσέγγιση αυτή αποδεικνύεται ανεπαρκής για την ανάπτυξη των σύγχρονων πολύπλοκων σηµερινών συστηµάτων του καθιερωµένου πια γραφικού περιβάλλοντος των υπολογιστών. Για την αντιµετώπιση της πολυπλοκότητας (complexity) των συστηµάτων που αναπτύσσουµε, πολλά έχουµε να διδαχθούµε από τον τρόπο µε τον οποίο είναι οργανωµένο το σύµπαν αλλά και ο φυσικός κόσµος που µας περιβάλει. Ένα αστέρι που πέφτει, ένα παιδί που µαθαίνει να γράφει, ένα αεροπλάνο που απογειώνεται, αποτελούν µερικά απλά παραδείγµατα αντικειµένων που απαρτίζουν τον φυσικό κόσµο. Αντικείµενα που αλληλεπιδρούν µεταξύ τους αλλά και που µπορούν να θεωρηθούν αποτελούµενα από άλλα επί µέρους αλληλεπιδρόντα αντικείµενα. Ο άνθρωπος, εξοικειωµένος µε την θεώρηση αυτή, µπορεί εύκολα να αντιµετωπίσει µε τον ίδιο τρόπο και τα συστήµατα λογισµικού που αναπτύσσει. Η προσέγγιση που βασίζεται στην θεώρηση αυτή είναι γνωστή µε το όνοµα Αντικειµενοστρεφής Προσέγγιση (ΑΠ) και υπόσχεται να δώσει λύση στα πολλά προβλήµατα της διαδικασίας ανάπτυξης συστηµάτων λογισµικού. Τα µοντέλα ανάλυσης και σχεδιασµού που αναπτύσσονται σύµφωνα µε την ΑΠ είναι εύκολα στη κατανόηση καθώς σχετίζονται άµεσα µε την πραγµατικότητα. Η ΑΠ έχει καταφέρει να µειώσει το σηµασιολογικό κενό (semantic gap) µεταξύ ιδεατού µοντέλου και µοντέλου ανάλυσης του συστήµατος, αλλά και µεταξύ µοντέλου ανάλυσης και σχεδιασµού, διευκολύνοντας την αντιστοίχηση των εννοιών από το ένα µοντέλο στο επόµενο (forward traceability) ή στο προηγούµενο (backward traceability) [Jacobson 92].

13 A π πª K π ªπ À 13 Το κεφάλαιο αυτό παρουσιάζει παραδείγµατα από την καθηµερινή ζωή για να εισάγει τις βασικές έννοιες και να αποδείξει πως η ΑΠ δεν είναι τίποτε παραπάνω από µεταφορά των εννοιών αυτών στη διαδικασία ανάπτυξης συστήµατος. Για σας που θέλετε µια σε βάθος ανάλυση του θέµατος της πολυπλοκότητας των συστηµάτων λογισµικού αλλά και του τρόπου που αυτή µπορεί να αντι- µετωπισθεί σύµφωνα µε την ΑΠ µπορείτε να ανατρέξετε στο πρώτο κεφάλαιο του [Booch 94] µε τίτλο «Complexity» όπου θα βρείτε µια πολύ καλή αλλά δύσκολη προσέγγιση του θέµατος. 1.1 AÓÙÈÎÂ ÌÂÓÔ KÏ ÛË ÙÈÁÌÈfiÙ appleô Τι είναι αντικείµενο; Αν παρατηρήσουµε το περιβάλλον γύρω µας, θα διακρίνουµε ένα σύνολο από οντότητες µε τις οποίες αλληλεπιδρούµε συνεχώς. Οι οντότητες αυτές που είναι είτε απλές όπως ο πιστός µας σκύλος, είτε πιο σύνθετες, όπως η δανειστική βιβλιοθήκη, η τράπεζα και η υπηρεσία ύδρευσης, µας παρέχουν ένα σύνολο από εξυπηρετήσεις αλλά και χρησιµοποιούν εξυπηρετήσεις που εµείς προσφέρουµε. Η οντότητα «Tράπεζα» παρέχει την πολύ γνωστή σε όλους σας εξυπηρέτηση της πιστωτικής κάρτας, ο ΟΤΕ παρέχει την εξυπηρέτηση παροχής τηλεφωνικής γραµµής, την εξυπηρέτηση του 131, ενώ εσείς προσφέρετε την εξυπηρέτηση παροχής τροφής στο σκύλο σας. Γενικά µπορούµε να πούµε, ότι ο κόσµος αποτελείται από αντικείµενα απλά ή σύνθετα, τα οποία αλληλεπιδρούν µεταξύ τους. Τι είναι κλάση και τι στιγµιότυπο; Ας δούµε όµως τη διαφορά που υπάρχει µεταξύ του Αζώρ [1] και του όρου «πιστός σκύλος». Ο όρος «πιστός σκύλος» αναφέρεται στην αφηρηµένη έννοια που περιγράφει τα κοινά χαρακτηριστικά ενός συνόλου πραγµατικών αντικειµένων του φυσικού κόσµου. Αντίθετα, ο Αζώρ είναι ένα από τα πραγ- µατικά αντικείµενα που η αφηρηµένη έννοια «πιστός σκύλος» περιγράφει. Όλοι σας γνωρίζετε τα χαρακτηριστικά που προσδιορίζει η αφηρηµένη έννοια «Τράπεζα» και αυτό σας διευκολύνει ώστε να ζητήσετε την έκδοση βιβλιαρίου καταθέσεων µε την πρώτη σας επίσκεψη στην τράπεζα που πρόσφατα άνοιξε στην γειτονιά σας. [1] Tου πιστού µου σκύλου

14 14 º π 1: B π π A π πª ƒ º À ƒ π Για κάθε αντικείµενο του φυσικού κόσµου υπάρχει ή µπορούµε να ορίσου- µε, µια αφηρηµένη έννοια που περιγράφει, αφενός τον τρόπο µε τον οποίο το αντικείµενο επικοινωνεί µε το περιβάλλον του, αφετέρου το πώς αυτό είναι οργανωµένο εσωτερικά. Η ΑΠ ονοµάζει στιγµιότυπα (instances) τα πραγµατικά αντικείµενα και κλάσεις (classes) τις αφηρηµένες έννοιες που τα περιγράφουν. O Αζώρ είναι ένα στιγµιότυπο της κλάσης «πιστός σκύλος», όπως το υποκατάστηµα 223 της Αγροτικής Τράπεζας της γειτονιάς σας είναι στιγµιότυπο της κλάσης «Αγροτική Τράπεζα». Λάθος! θα µου πείτε. Ναι µεν, ο Αζώρ είναι στιγµιότυπο της κλάσης «πιστός σκύλος», η Τράπεζα της γειτονιάς µας όµως είναι στιγµιότυπο της κλάσης «Τράπεζα», όπως διαφαίνεται από το προηγού- µενο κείµενο. Μήπως όµως και ο Αζώρ είναι στιγµιότυπο της κλάσης «σκύλος» και όχι της «πιστός σκύλος»; και γιατί όχι της κλάσης «θηλαστικό»; Όπως βλέπουµε, υπάρχουν δύο τουλάχιστον σε κάθε περίπτωση αφηρηµένες έννοιες που διεκδικούν τα εν λόγω στιγµιότυπα. Και δεν είναι βέβαια λάθος να πούµε ότι ο Αζώρ είναι στιγµιότυπο της κλάσης «θηλαστικό», ούτε πως ο Αζώρ είναι στιγµιότυπο της κλάσης «σκύλος» αλλά και της «πιστός σκύλος». Σχέσεις µεταξύ των κλάσεων Είναι φανερό ότι υπάρχει σχέση (association) µεταξύ των τριών παραπάνω κλάσεων. Η κλάση «πιστός σκύλος» είναι εξειδίκευση της κλάσης «σκύλος», της οποίας αποτελεί γενίκευση η κλάση «θηλαστικό». Η ΑΠ ονοµάζει αυτή τη µορφή σχέσης που υπάρχει µεταξύ των αφηρηµένων εννοιών (κλάσεων), σχέση γενίκευσης εξειδίκευσης. Ας θεωρήσουµε πάλι το παράδειγµα της τράπεζας. Η αφηρηµένη έννοια «Τράπεζα» ορίζει πως κάθε στιγµιότυπό της, αποτελεί συνάθροιση ενός κτίσµατος, ενός αριθµού τερµατικών, ενός διευθυντή, ενός αριθµού υπαλλήλων, κ.ο.κ. Οι όροι κτίσµα, τερµατικό, διευθυντής και υπάλληλος προσδιορίζουν µε τη σειρά τους, τις αφηρηµένες έννοιες των επί µέρους αντικειµένων από τα οποία αποτελείται η τράπεζα της γειτονιάς σας. Η σχέση που συνδέει την κλάση «Τράπεζα» µε την κλάση «Τερµατικό», όπως και µε την κλάση «Υπάλληλος», είναι σύµφωνα µε την ΑΠ µια σχέση «όλου µέρους» (whole part) ή αλλιώς σχέση συνάθροισης (aggregation). Και η µεν «Τράπεζα» είναι το σύνθετο (aggregate) αντικείµενο, το όλο, τα δε «κτίσµα», «τερµατικό», κ.ο.κ. αποτελούν τα συνθετικά του, τα µέρη από τα οποία αποτελείται.

15 A π πª K π ªπ À 15 ιαβάστε τώρα προσεκτικά την παρακάτω περιγραφή. Ú ÂÈÁÌ 1 «fast food ο Γιώργος» Ο Γιώργος αποφασίζει να ανοίξει ένα µαγαζί πρόχειρου φαγητού (fast food). Γνωρίζει πως χρειάζεται ένα φούρνο µικροκυµάτων, µια τοστιέρα, ένα ψυγείο, ένα πλυντήριο πιάτων, και ορισµένα άλλα αντικείµενα, τα οποία είναι απαραίτητα για να παρέχει σωστές υπηρεσίες το µαγαζί του. Ο Γιώργος αρχίζει µε την ετοιµασία του χώρου και όταν αυτός είναι έτοιµος, ειδοποιεί να του φέρουν και εγκαταστήσουν τα επί µέρους αντικείµενα συσκευές που απαρτίζουν το fast food. Μια ανακοίνωση στην είσοδο κάτω από την πινακίδα «fast food ο Γιώργος» γράφει «Ζητούνται υπάλληλοι». Μετά από µερικές µέρες το µαγαζί είναι έτοιµο, και ο Γιώργος µε τους δύο υπαλλήλους που ήδη προσέλαβε, τη Μαίρη και το Νίκο, είναι έτοιµοι να υποδεχτούν τον πρώτο τους πελάτη. Ο Χρήστος, το όνοµα του πρώτου πελάτη, µπαίνει στο µαγαζί. «Ένα τοστ µε τυρί ζαµπόν παρακαλώ, µια τυρόπιτα και µια παγωµένη ΗΒΗ». Ο Γιώργος λέει στη Μαίρη «Φτιάξε σε παρακαλώ το τοστ», και αυτός αναλαµβάνει την τυρόπιτα. ιαπιστώνει όµως πως είναι κρύα και αποφασίζει να χρησιµοποιήσει το φούρνο µικροκυµάτων. Εκείνη τη στιγµή στο µαγαζί µπαίνει ένας άλλος πελάτης, ο Κώστας, και δίνει και αυτός την παραγγελία του. Μετά από λίγο ο Χρήστος πήρε µια σακούλα και αφού πλήρωσε βγήκε από το µαγαζί. Αφού διαβάσατε προσεκτικά το κείµενο του Παραδείγµατος 1/κεφ.1, προσπαθήστε να αναγνωρίσετε και καταγράψετε κλάσεις (αφηρηµένες έννοιες) και τα αντίστοιχα στιγµιότυπά τους. Στη συνέχεια, διαβάστε προσεκτικά πάλι τα περί κλάσεων και αντικειµένων στην ενότητα 1.1 και κάντε τις απαραίτητες διορθώσεις και προσθήκες. Αφού ολοκληρώσετε, ανατρέξτε στο τέλος του βιβλίου για να επιβεβαιώσετε τα αποτελέσµατα σας. Ú ÛÙËÚÈfiÙËÙ 1.1

16 16 º π 1: B π π A π πª ƒ º À ƒ π Κάθε κλάση έχει έναν αναγνωριστή Ο λογαριασµός που µόλις ανοίξατε στην τράπεζα έχει αριθµό Ο αριθµός αυτός µοναδιαία διακρίνει το στιγµιότυπο της κλάσης «λογαριασµός» από τα υπόλοιπα στιγµιότυπα της ίδιας κλάσης και καλείται αναγνωριστής (identifier). Κάθε κλάση, είτε έχει από τη φύση της έναν αναγνωριστή, είτε θα πρέπει να της καθορίσουµε εµείς έναν. 1.2 o Û ÛÙËÌ ÛÙËÓ A Το σύστηµα σαν συνάθροιση αντικειµένων Στη συνέχεια θα χρησιµοποιήσουµε τον όρο σύστηµα αντί του όρου οντότητα και θα αναφερθούµε στην οργάνωση και λειτουργία του συστήµατος «fast food ο Γιώργος», το οποίο αποτελεί χαρακτηριστικό παράδειγµα του τρόπου µε τον οποίο συστήµατα του πραγµατικού κόσµου είναι οργανωµένα και λειτουργούν. Η αφηρηµένη έννοια fast food περιγράφει αντικείµενα που αποτελούνται από ένα κτίσµα, έναν ιδιοκτήτη, υπαλλήλους, ψυγείο, φούρνο µικροκυµάτων, τοστιέρα, κ.λ.π. Λέµε ότι η κλάση fast food είναι η συνάθροιση των κλάσεων κτίσµα, ιδιοκτήτης, υπάλληλος ή ότι οι κλάσεις αυτές αποτελούν τα συνθετικά της κλάσης fast food. Μόλις αναγνωρίσαµε και καταγράψαµε µια σχέση συνάθροισης µεταξύ των κλάσεων του συστή- µατός µας. Η ΑΠ θεωρεί το κάθε σύστηµα ως συνάθροιση των επί µέρους αντικειµένων από τα οποία αποτελείται. Ú ÛÙËÚÈfiÙËÙ 1.2 Θεωρήστε το κείµενο του Παραδείγµατος 1 και προσπαθήστε να αναγνωρίσετε και να καταγράψετε κλάσεις που σχετίζονται µε σχέση γενίκευσης εξειδίκευσης, καθώς και κλάσεις που σχετίζονται µε σχέση συνάθροισης. Στη συνέχεια διαβάστε προσεκτικά πάλι τα περί σχέσεων κλάσεων και κάντε τις απαραίτητες διορθώσεις και προσθήκες. Αφού ολοκληρώσετε ανατρέξτε στο τέλος του βιβλίου για να δείτε µια δική µας καταγραφή. Τα αντικείµενα επικοινωνούν µεταξύ τους µε µηνύµατα «Objects do things, and we ask them to perform what they do by sending them messages» [Booch 94]. [2] [2] «Τα αντικείµενα εκτελούν ενέργειες και εµείς τους ζητούµε να τις εκτελέσουν αποστέλλοντας τους µηνύµατα».

17 O À ª A 17 Το σύστηµα µας παρέχει, αλλά και χρησιµοποιεί εξυπηρετήσεις άλλων αντικειµένων (συστηµάτων) του περιβάλλοντος στο οποίο βρίσκεται. Παρέχει την εξυπηρέτηση «ζεστή τυρόπιτα» στον πελάτη και χρησιµοποιεί τις εξυπηρετήσεις του ΟΤΕ και των προµηθευτών του. Ας δούµε τώρα πιο αναλυτικά τον τρόπο µε τον οποίο το σύστηµα µας παρέχει την εξυπηρέτηση «ζεστή τυρόπιτα». Το αντικείµενο που θέλει την εξυπηρέτηση (ο Χρήστος του παραδείγµατος µας) πρέπει να το γνωστοποιήσει στο σύστηµά µας περνώντας του το µήνυµα «Παρακαλώ µια ζεστή τυρόπιτα». Το σύστηµά µας, αναγνωρίζει το µήνυµα, διακρίνει πως είναι µια από τις υπηρεσίες που παρέχει, και συµπεριφέρεται κατά τέτοιο τρόπο ώστε να προσφέρει τη ζητούµενη υπηρεσία. εν θα συνέβαινε το ίδιο για το µήνυµα «Σας παρακαλώ ένα ποδήλατο». Το σύστηµα αναγνωρίζει οτι δεν είναι υπηρεσία που µπορεί να προσφέρει και ενηµερώνει γι αυτό τον αιτούντα. Κάθε αντικείµενο είναι αποδέκτης πολλών µηνυµάτων από το εξωτερικό περιβάλλον, αλλά αναγνωρίζει ορισµένα και αποκρίνεται µόνο σε αυτά. Γενικά µπορούµε να πούµε ότι τα αντικείµενα επικοινωνούν µεταξύ τους περνώντας το ένα στο άλλο µηνύµατα. Ο τρόπος που τα µηνύµατα αυτά περνούν διαφέρει από περίπτωση σε περίπτωση (οµιλία, γραφή, νοήµατα, ταχυδροµείο, e mail, κλπ.) χωρίς αυτό να επηρεάζει την παρεχόµενη εξυπηρέτηση. Τα επιµέρους αντικείµενα του συστήµατος συνεργάζονται για την παροχή των εξυπηρετήσεών του «We view the world as a set of autonomous agents that collaborate to perform some higher level behavior» [Booch 94] [3]. Ο Γιώργος µόλις δέχτηκε το µήνυµα του Χρήστου, του πρώτου πελάτη, χρησι- µοποίησε τον προφορικό λόγο για να περάσει το µήνυµα «Φτιάξε σε παρακαλώ το τοστ» στο αντικείµενο Μαίρη, αλλά πρέπει να ρυθµίσει το πλήκτρο χρόνου του φούρνου µικροκυµάτων και στη συνέχεια να πιέσει το πλήκτρο «START», για να γνωστοποιήσει στο αντικείµενο «φούρνο» ότι θέλει να του ζεστάνει την τυρόπιτα. Η Μαίρη αντίστοιχα χρησιµοποιεί τις εξυπηρετήσεις της τοστιέρας για την παρασκευή του τοστ. Το πλυντήριο πιάτων µε τη σειρά του περνάει το µήνυµα «θέλω νερό» στο αντικείµενο βρύση, µε διαφορετικό φυσικά τρόπο απ ότι περνάει στο αντικείµενο Νίκος το µήνυµα «το πλύσιµο τελείωσε». Στη δεύτερη αυτή περίπτωση παράγει ένα συγκεκριµένο ήχο για να γνωστοποιήσει στο Νίκο ότι ολοκλήρωσε την εξυπηρέτηση που του ζητήθηκε. [3] «Bλέπουµε τον κόσµο αποτελούµενο από αυτόνοµους πράκτορες που συνεργάζονται για να προσφέρουν µια υψηλότερου επιπέδου συµπεριφορά»

18 18 º π 1: B π π A π πª ƒ º À ƒ π Όπως βλέπουµε, τα αντικείµενα του συστήµατός µας συνεργάζονται αρµονικά µεταξύ τους. Κάθε σύστηµα, σύµφωνα µε την ΑΠ, µπορεί να θεωρηθεί σαν µια συνάθροιση αντικειµένων, τα οποία συνεργάζονται µεταξύ τους ανταλάσσοντας µηνύµατα για να παρέχουν τις υπηρεσίες του συστήµατος. Τα εξωτερικά αντικείµενα έχουν πρόσβαση µόνο σε ορισµένα αντικείµενα του συστήµατός µας Ο πελάτης του fast food µπορεί να ζητήσει εξυπηρετήσεις από τους σερβιτόρους και τον ιδιοκτήτη, δεν µπορεί όµως να χρησιµοποιήσει την τοστιέρα, τον φούρνο, την βρύση και τα άλλα αντικείµενα από τα οποία αποτελείται το σύστηµα µας. Αυτό αποτελεί µεν έναν περιορισµό, ο οποίος όµως, αφενός διευκολύνει την επικοινωνία του πελάτη µε το fast food, αφετέρου διευκολύνει τον ιδιοκτήτη να τροποποιεί την εσωτερική σύνθεση του συστήµατος του (νέα µηχανήµατα κλπ.) χωρίς να επηρεάζει τον τρόπο µε τον οποίο οι πελάτες επικοινωνούν µε αυτό. Σε διαφορετική περίπτωση και όταν ο ιδιοκτήτης, για διάφορους λόγους, άλλαζε την τοστιέρα µε µια πιο σύνθετη, θα έπρεπε να ενηµερώσει όλους τους πελάτες του για τον τρόπο λειτουργίας της. Όλα γενικά τα αντικείµενα, απλά ή σύνθετα, είναι κατασκευασµένα µε τέτοιο τρόπο ώστε να εµφανίζουν προς τα έξω µόνο εκείνα τα στοιχεία τους, που συµµετέχουν στη διαδικασία περάσµατος των µηνυµάτων και για το λόγο αυτό πρέπει να είναι γνωστά στα άλλα αντικείµενα που χρησιµοποιούν τις εξυπηρετήσεις τους. Για να χρησιµοποιήσουµε το φούρνο µικροκυµάτων θέλουµε πρόσβαση µόνο σε ορισµένα πλήκτρα, τα οποία µας βοηθούν να περάσουµε στο φούρνο τα µηνύµατά µας. Τέτοια είναι τα πλήκτρα «start», «stop» και «open door». Τα πλήκτρα αυτά, λέµε ότι, αποτελούν την διεπαφή (interface) της κλάσης «φούρνος» µε την κλάση «πρόσωπο». O Γιώργος, για παράδειγµα, σαν χρήστης του αντικειµένου «φούρνος», δεν είναι ανάγκη να γνωρίζει την εσωτερική δοµή του. Λέµε ότι ο φούρνος αποκρύπτει (hides) το εσωτερικό του, στο οποίο όµως έχει πρόσβαση ο κατασκευαστής του και βέβαια αυτός που θα χρειαστεί να τον επισκευάσει. Μόλις καταγράψαµε µια εφαρµογή της βασικής αρχής της απόκρυψης πληροφορίας (information hiding). Σύµφωνα µε την ΑΠ, «κάθε σύστηµα αποκρύπτει αυτά που πρέπει να αποκρύψει και κάνει ορατά µόνο τα απαραίτητα». Έτσι διακρίνουµε για κάθε αντικείµενο δύο τµήµατα: το ένα αποτελεί την υλοποίηση του αντικειµένου (object implementation) και το άλλο τη διεπαφή του (object interface) διαµέσου της οποίας επικοινωνεί µε το περιβάλλον του.

19 ªπ Àƒ π K ƒ º π πª À 19 ÓÙÈΠÌÂÓÔ Ï ÛË ÙÈÁÌÈfiÙ appleô Θα παρατηρήσατε ίσως, ότι στο κείµενο χρησιµοποιείται ο όρος αντικεί- µενο και για την αφηρηµένη έννοια (κλάση) αλλά και για τα στιγµιότυπά της. Γενικά η ΑΠ θεωρεί όλες τις οντότητες, πραγµατικές και αφηρηµένες, αντικείµενα (οbjects). Σύµφωνα µε τη θεώρηση αυτή αντικείµενο είναι η κλάση, το στιγµιότυπο αλλά και η σχέση µεταξύ δύο κλάσεων. Επειδή έχει σχεδόν επικρατήσει στη βιβλιογραφία ο όρος αντικείµενο αντί του όρου στιγµιότυπου, θα χρησιµοποιούµε στη συνέχεια και τους δύο όρους, µε τα συµφραζόµενα να ορίζουν την πραγµατική σηµασία. 1.3 ËÌÈÔ ÚÁ K Ù ÛÙÚÔÊ ÓÙÈÎÂÈÌ ÓÔ Είναι αυτονόητο να παρατηρήσουµε, ότι η αφηρηµένη έννοια fast food δεν µπορεί να δεχτεί µηνύµατα και άρα να παρέχει οποιοδήποτε τύπο εξυπηρέτησης. Αντίθετα, ορίζει τα µηνύµατα τα οποία µπορούν να δεχτούν τα στιγ- µιότυπά της και επιπλέον προσδιορίζει τη συµπεριφορά τους σε αυτά. Εξυπηρετήσεις παρέχουν µόνο τα στιγµιότυπα σε απόκριση των µηνυµάτων που δέχονται. Αν θέλετε λοιπόν να φάτε ζεστή τυρόπιτα, φροντίστε να βρείτε ένα στιγµιότυπο τύπου fast food ή να δηµιουργήσετε ένα [4] και να του στείλετε το κατάλληλο µήνυµα. Όταν το αντικείµενο δεν χρησιµοποιείται πλέον θα πρέπει να ελευθερώσει τους πόρους που κατέχει. Έτσι το fast food ο Γιώργος θα πρέπει να ελευθερώσει το κτίσµα, τους υπαλλήλους, τον αριθµό τηλεφώνου, κ.λπ. ώστε αυτά να χρησι- µοποιηθούν από άλλο σύστηµα. Το αντικείµενο πρέπει να καταστραφεί. 1.4 AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ appleúôû ÁÁÈÛË Ó appleù ÍË Û ÛÙËÌ ÙˆÓ ÏÔÁÈÛÌÈÎÔ Η ΑΠ δεν είναι τίποτε παραπάνω από εφαρµογή των παραπάνω, κατά κύριο λόγο, γενικών αρχών στη διαδικασία ανάπτυξης συστηµάτων λογισµικού. Έτσι, σύµφωνα µε την ΑΠ, ένα αντικείµενο του πραγµατικού κόσµου αναπαρίσταται σαν αντικείµενο στις φάσεις της ανάλυσης, του σχεδιασµού αλλά και της υλοποίησης. Η αντικειµενοστρεφής µορφή προγραµµατισµού θεω- [4] Στην περίπτωση µας βέβαια δεν θα δηµιουργήσετε στιγµιότυπο, αλλά αυτό θα κάνετε πολύ συχνά στα προγράµµατα σας, όπου η δηµιουργία αντικειµένων είναι απλούστερη και δεν κοστίζει τόσο.

20 20 º π 1: B π π A π πª ƒ º À ƒ π ρεί το πρόγραµµα αποτελούµενο από αντικείµενα τα οποία συνεργάζονται µεταξύ τους για την παροχή των εξυπηρετήσεών του. Το σύστηµα, µε τη σειρά του, θεωρείται στο ευρύτερο περιβάλλον ένα αντικείµενο, το οποίο παρέχει αλλά και χρησιµοποιεί εξυπηρετήσεις. Ένα αντικειµενοστρεφές περιβάλλον ανάπτυξης, όπως για παράδειγµα αυτό της Java, είναι ένα περιβάλλον που υποστηρίζει την ανάπτυξη συστηµάτων της παραπάνω µορφής. ιαθέτει µηχανισµούς απόκρυψης πληροφορίας, περάσµατος µηνυµάτων, δηµιουργίας και καταστροφής στιγµιοτύπων, αναπαράστασης της γενικευµένης ιεραρχίας, αλλά και άλλους που θα δούµε στα επόµενα κεφάλαια. Οι µηχανισµοί αυτοί βελτιώνουν αναµφισβήτητα την ποιότητα του λογισµικού ως προς τα χαρακτηριστικά του: επαναχρησιµοποίηση (reusability) επεκτασιµότητα (extendibility) ορθότητα (correctness) ευρωστία (robustness) συντηρησιµότητα (maintainability) Μια πολύ καλή αναφορά στα γενικότερα πλεονεκτήµατα της τεχνολογίας αντικειµένων (Object Technology) γίνεται στο κεφάλαιο 3 του βιβλίου [Martin 92]. Ô ÓÙÈΠÌÂÓÔ Û ÌÊˆÓ Ì ÙÔÓ Booch. Παρόλο που το αντικείµενο αποτελεί το βασικό δοµικό στοιχείο της ΑΠ, δεν υπάρχει ένας κοινά αποδεκτός ορισµός γι αυτό. Από το σύνολο των ορισµών, διακρίνουµε αυτόν του Booch, ενός από τους σηµαντικότερους ερευνητές στην περιοχή της ΑΠ. «Ένα αντικείµενο έχει κατάσταση, συµπεριφορά και ταυτότητα. Η κατάσταση και η συµπεριφορά οµοειδών αντικειµένων ορίζονται από την κοινή τους κλάση. Οι όροι στιγµιότυπο και αντικείµενο χρησιµοποιούνται εναλλακτικά» [Booch 94]. ιαβάστε το παρακάτω κείµενο, για την καλύτερη κατανόηση των εννοιών κατάσταση, συµπεριφορά και ταυτότητα. (συνέχεια )

21 A π πª ƒ º ƒ π À À ª ø π ªπ À 21 ( συνέχεια) Στα τρία τηλέφωνα που έχετε στο σπίτι σας έχετε φροντίσει να δώσετε ένα διαφορετικό όνοµα στο καθένα ώστε να µπορείτε να αναφέρεστε σε αυτό. Έχετε δηµιουργήσει ένα αναγνωριστή ή µία ταυτότητα όπως πιο απλά θα λέγαµε. Το τηλέφωνο δέχεται από σας το µήνυµα που του περνάτε πιέζοντας το πλήκτρο 0, αλλά η συµπεριφορά του, δηλαδή η αντίδραση του στο µήνυµα αυτό εξαρτάται από την κατάσταση στην οποία το αντικείµενο βρίσκεται. Έτσι, διαφορετική είναι η συµπεριφορά του αν είναι σε κατάσταση συνδιάλεξης, αναµονής, απάντησης, ή µε το ακουστικό κατεβασµένο. Η συµπεριφορά ενός αντικειµένου άµεσα εξαρτάται από την κατάσταση στην οποία το αντικείµενο βρίσκεται. Αναφερόµενοι στο κείµενο του Παραδείγµατος 1, αναγνωρίστε και καταγράψτε τις σχέσεις των κλάσεων της αριστερής στήλης µε αυτές της δεξιάς του παρακάτω πίνακα. Χρησιµοποιήστε την UML σηµειολογία που αναφέραµε στη ραστηριότητα 1.2. ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË 1.1 Κλάση Ιδιοκτήτης Σερβιτόρος Πελάτης Κλάση fast food Ηλεκτρική συσκευή Πρόσωπο Τοστιέρα Φούρνος µικροκυµάτων Για την γνωστή σας συσκευή του αυτόµατου τηλεφωνητή, δώστε ένα τουλάχιστο µήνυµα, για το οποίο η συσκευή έχει συµπεριφορά εξαρτώµενη από την κατάστασή της. Περιγράψτε τις διαφορετικές καταστάσεις, αλλά και τις αντίστοιχες συµπεριφορές της. Ú ÛÙËÚÈfiÙËÙ 1.3

22 22 º π 1: B π π A π πª ƒ º À ƒ π ÓÔ Ë Στο κεφάλαιο αυτό, παραθέσαµε ορισµένες από τις βασικές έννοιες πάνω στις οποίες βασίζεται η αντικειµενοστρεφής ανάπτυξη συστηµάτων. Χρησιµοποιήθηκαν παραδείγµατα από την καθηµερινή ζωή για να δοθεί έµφαση στην απλότητα των εννοιών και στο γεγονός ότι ο άνθρωπος είναι ήδη εξοικειω- µένος µε τις έννοιες αυτές. Οι έννοιες της κλάσης, του αντικειµένου, της απόκρυψης πληροφορίας, της επικοινωνίας µε πέρασµα µηνυµάτων, της γενίκευσης εξειδίκευσης κ.ο.κ. απέδειξαν, ότι είναι ικανές να ανταποκριθούν σε µεγάλο βαθµό στις αυξηµένες απαιτήσεις της διαδικασίας ανάπτυξης των πολύπλοκων σηµερινών συστηµάτων λογισµικού. Συµπερασµατικά, το αντικείµενο έρχεται να αντικαταστήσει τη διεργασία και να µας οδηγήσει από την διαδικαστική (procedural) στην αντικειµενοστρεφή µορφή προγραµµατισµού. Μια µορφή, που υπόσχεται να λύσει πολλά από τα προβλήµατα της διαδικασίας ανάπτυξης συστηµάτων λογισµικού. BÈ ÏÈÔÁÚ Ê [1] [Booch 94] Grady Booch, «Object Oriented Analysis and Design with applications» second edition, Benjamin/Cummings Publishing Company Inc, Αποτελεί ένα από τα καλύτερα βιβλία στο χώρο της αντικειµενοστρεφούς προσέγγισης. Η σηµαντική του συµβολή είναι κυρίως στη φάση του σχεδιασµού για την οποία κατά την γνώµη µου αποτελεί και το καλύτερο από τα διαθέσιµα βιβλία. Ο Booch εξ άλλου, µε τον Jacobson και τον Rumbaugh είναι οι δηµιουργοί της Unified Modeling Language (UML), της πρώτης γλώσσας που έγινε πρότυπο για αντικειµενοστρεφή ανάπτυξη συστηµάτων. [2] [Jacobson 92] Ivar Jacobson, «Object Oriented Software Engineering A use case Driven Approach», Addison Wesley, Αποτελεί ένα από τα καλύτερα βιβλία στο χώρο της αντικειµενοστρεφούς προσέγγισης. Έγινε περισσότερο γνωστό από την έννοια του «use case» (περίπτωσης χρήσης) που εισήγαγε στην διαδικασία ανάλυσης του συστήµατος και η οποία υιοθετήθηκε από το σύνολο σχεδόν των µεθοδολογιών αντικειµενοστρεφούς ανάπτυξης συστηµάτων λογισµικού. Αναφέρεται κυρίως στις φάσεις της ανάλυσης και σχεδιασµού οι οποί-

23 BIB IO PAºIA 23 ες αποτελούν αντικείµενο άλλης θεµατικής ενότητας. Ανήκει στα βιβλία που δεν θα πρέπει να λείπουν από την βιβλιοθήκη του επαγγελµατία στο χώρο της ανάπτυξης συστηµάτων. [3] [Martin 92] J. Martin, J. Odell, «Object Oriented Analysis & Design», Prentice Hall, Το βιβλίο αυτό δίνει απόψεις, οι οποίες σε πολλές περιπτώσεις είναι διαφορετικές από τις ευρέως θεωρούµενες στον χώρο της αντικειµενοστρεφούς προσέγγισης. Στις απόψεις αυτές αποφύγετε να ανατρέξετε στο παρόν στάδιο, γιατί µπορεί να σας δηµιουργήσουν σύγχυση. Αντίθετα, οι απόψεις αυτές µπορούν να αποτελέσουν πηγή προβληµατισµού στο στάδιο που θα έχετε κατανοήσει και χρησιµοποιήσει αρκετά την ΑΠ. Η παρατήρηση αυτή δεν ισχύει για το κεφάλαιο 3, στο οποίο γίνεται η παραποµπή. [4] [UML 97] «Unified Modeling Language: UML semantics» version 1.1, Rational Software, September 97.

24

25 EÈÛ ÁˆÁ ÛÙË Java ÎÔapplefi Σκοπός του κεφαλαίου είναι να παρουσιάσει τη διαδικασία ανάπτυξης Java προγράµµατος καθώς και τον τρόπο που ένα πρόγραµµα Java µπορεί να αποτελέσει µέρος µιας ιστοσελίδας του διαδικτύου. Το κεφάλαιο ξεκινά µε µια πολύ σύντοµη αναφορά στην ιστορία της Java και τους λόγους για τους οποίους η γλώσσα επιλέχτηκε για την παρουσίαση του αντικειµενοστρεφούς προγραµµατισµού. 2 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Όταν θα έχετε ολοκληρώσει το κεφάλαιο αυτό θα µπορείτε να: αναπτύξετε ένα πρόγραµµα Java, για το οποίο θα σας έχει δοθεί ο πηγαίος κώδικας, αναπτύξετε και ενσωµατώσετε σε µία ιστοσελίδα ένα Java πρόγραµµα για το οποίο σας δίνεται ο πηγαίος κώδικας, κάνετε απλές τροποποιήσεις σε δεδοµένο πρόγραµµα Java. ŒÓÓÔÈ ÎÏÂÈ È συντακτικό γλώσσας BNF ASCII κώδικας Unicode δεσµευµένη λέξη (reserved word) λέξη κλειδί (keyword) ευανάγνωστο πρόγραµµα συντακτικό λάθος (syntax error) σηµασιολογικό λάθος (semantic error) case sensitive ÈÛ ÁˆÁÈÎ Ú ÙËÚ ÛÂÈ Οι βασικές έννοιες του Αντικειµενοστρεφούς Προγραµµατισµού (ΑΠ) εισήχθησαν από την Simula, αλλά έγιναν γνωστές από την Smalltalk, τη γλώσσα που θεωρείται πρόγονος του ΑΠ. Οι σχεδιαστές της Smalltalk επηρεάστηκαν σε µεγάλο βαθµό από την Simula, όπως ακριβώς και ο Bjarne Stroustrup, ο οποίος πρόσθεσε κλάσεις στην C για να δηµιουργήσει στη συνέχεια τη C++, στην οποία οφείλεται η ευρεία εξάπλωση του ΑΠ.

26 26 º π 2: Eπ ø JAVA Το κεφάλαιο αυτό διακρίνεται σε δύο ενότητες. Στην πρώτη γίνεται µια πολύ σύντοµη αναφορά στην ιστορία της Java και δίνονται οι λόγοι για τους οποίους η γλώσσα επιλέχτηκε να χρησιµοποιηθεί για την παρουσίαση της αντικειµενοστρεφούς µορφής προγραµµατισµού. Στη δεύτερη ενότητα, παρουσιάζεται η διαδικασία ανάπτυξης Java προγράµµατος, αλλά και Java applet, καθώς και η διαδικασία ενσωµάτωσης Java applet σε ιστοσελίδα. 2.1 IÛÙÔÚ ÙË Java Η Java παρουσιάστηκε σαν µια γλώσσα που είχε αφαιρέσει τα «βρώµικα» στοιχεία της C++ και είχε εισάγει ένα σύνολο από καλά στοιχεία άλλων γλωσσών όπως η Smalltalk. H ιστορία της γλώσσας ξεκίνησε, όταν µια οµάδα ερευνητών στην προσπάθεια της να αναπτύξει ενσωµατωµένο λογισµικό (embedded software) για έξυπνες καταναλωτικές συσκευές στα πλαίσια του project Green, αποφάσισε να αναπτύξει µια νέα γλώσσα µετά τη διαπίστωση ότι η C και η C++ δεν ανταποκρίνονταν στις απαιτήσεις της. Έτσι, τον Αύγουστο του 1991 εµφανίστηκε µια νέα αντικειµενοστρεφής γλώσσα µε το όνοµα Oak που είναι το ακρωνύµιο του Object Application Kernel. Η γλώσσα απλά προστέθηκε στον κατάλογο των καλών γλωσσών προγραµ- µατισµού µε ουσιαστική υποστήριξη σε εφαρµογές τύπου πελάτη εξυπηρέτη (client server) και τίποτε παραπάνω. Tον Απρίλιο του 1993 έκανε την εµφάνιση του το NCSA MOSAIC 1.0, σαν πρώτο γραφικό πρόγραµµα πλοήγησης στο διαδίκτυο (Web browser) και η γλώσσα άρχισε να κάνει τα πρώτα της βήµατα στο χώρο του διαδικτύου, µε πολύ θετικά αποτελέσµατα. Το στοιχείο αυτό ώθησε την Sun, µετά από µία αποτυχηµένη προσπάθειά της να πουλήσει τη γλώσσα (Αύγουστος 93), να χρηµατοδοτήσει την ανάπτυξή της για το 1994, αν και το προηγούµενο έτος είχε διακόψει σαν µη επιτυχηµένο το αντίστοιχο project. Στα µέσα του 1994 αναπτύχθηκε το πρώτο πειραµατικό πρόγραµµα πλοήγησης µε Java κάτω από το όνοµα WebRunner [1]. Το φθινόπωρο του ίδιου έτους ο Van Hoff υλοποιεί µε Java τον πρώτο Java διερµηνευτή [2]. Μόλις τον Ιανουάριο του 1995, η γλώσσα πήρε την σηµερινή της ονοµασία και εµφανίστηκε η πρώτη επίσηµη τεκµηρίωσή της µε την µορφή ενός «white paper» [Sun 95]. Το Μάιο του ιδίου έτους, η Sun παρουσίασε επίσηµα την Java [1] Aποτελεί την πρώτη έκδοση του προγράµµατος πλοήγησης HotJava της Sun. [2] O προηγούµενος Java interpreter είχε αναπτυχθεί από τον Gosling σε C.

27 I ƒπ JAVA 27 και το HotJava. Ταυτόχρονα, η Netscape αγόρασε άδεια χρήσης της Java και ενσωµάτωσε τη γλώσσα στη δεύτερη έκδοση του Netscape, του γνωστού προγράµµατος πλοήγησης. Στη συνέχεια ο ένας µετά τον άλλο οι µεγάλοι κατασκευαστές λογισµικού ανακοίνωναν την απόφαση τους να χρησιµοποιήσουν την Java, µε αποκορύφωµα την απόφαση της Microsoft τον εκέµβρη του Η Java καθιερώθηκε πια σαν η γλώσσα που θα πρωτοστατήσει στην ερχόµενη δεκαετία. Μια αναλυτική αναφορά στο χρονικό της εξέλιξης της γλώσσας µπορείτε να βρείτε στο διαδίκτυο στη διεύθυνση Μπορείτε επίσης να ανατρέξετε στην εισαγωγή της Υποενότητας 4, «Γλώσσες προγραµµατισµού», της 3ης Θεµατικής Ενότητας για να δείτε ένα µέρος του γενεαλογικού δένδρου των γλωσσών προγραµµατισµού. Θα διακρίνετε σε αυτό την εξέλιξη της C, αλλά και της Java, καθώς και τις γλώσσες από τις οποίες, κυρίως αυτές επηρεάστηκαν. Γιατί Java; Ορισµένοι από τους λόγους για τους οποίους επιλέξαµε τη Java για την εισαγωγή των εννοιών της αντικειµενοστρεφούς προσέγγισης είναι: η φορητότητά της, η οποία διασφαλίζει την δυνατότητα εκτέλεσης των Java προγραµµάτων ανεξάρτητα πλατφόρµας υλικού και λογισµικού, η πολύ µεγάλη βιβλιοθήκη έτοιµων κλάσεων που διαθέτει, γεγονός που διευκολύνει σε µεγάλο βαθµό τη γρήγορη ανάπτυξη εφαρµογών, η ραγδαία εξάπλωση που γνωρίζει όσον αφορά τη χρήση της σε ερευνητικά και αναπτυξιακά προγράµµατα, η δυνατότητα της να χρησιµοποιηθεί για προγραµµατισµό στο διαδίκτυο, το γεγονός ότι είναι, όσον αφορά την υποστήριξη της ΑΠ, πολύ πιο καθαρή από την C++, η οποία θα µπορούσε να θεωρηθεί σαν λογική συνέχεια της C, η υιοθέτηση µεγάλου µέρους της C. Ο τελευταίος αυτός λόγος, θα σας δώσει τη δυνατότητα να µπορέσετε πολύ σύντοµα να τροποποιήσετε ή ακόµη και να δηµιουργήσετε τα δικά σας προγράµµατα Java εκµεταλλευόµενοι την γνώση και εµπειρία σας στη C. Ενδιαφέρον παρουσιάζουν οι συγκριτικές παρουσιάσεις της γλώσσας µε άλλες επιτυχηµένες γλώσσες προγραµµατισµού. Μια τέτοια συγκριτική παρουσίαση µε τις γλώσσες Smalltlk, TCL, Perl, Shells, C και C++ δίνεται

28 28 º π 2: Eπ ø JAVA στο [Sun 95] [3]. Μια πιο αντικειµενική αξιολόγηση µε αντίστοιχη βαθµολόγηση των σηµαντικότερων αντικειµενοστρεφών γλωσσών προγραµµατισµού δίνεται από το άρθρο [Sutherland 95]. 2.2 È ÈÎ Û Ó appleù ÍË appleúôáú ÌÌ ÙÔ Java ÈÛ ÁˆÁÈÎ apple Ú ÙËÚ ÛÂÈ Για να µπορέσετε να µελετήσετε την ενότητα αυτή θα πρέπει πρώτα να εξασφαλίσετε πρόσβαση σε ένα περιβάλλον ανάπτυξης Java. Το περιβάλλον αυτό είναι απαραίτητο για την ανάπτυξη κάθε προγράµµατος Java. Ένα τέτοιο περιβάλλον που διατίθεται χωρίς χρέωση και χρησιµοποιείται ευρέως είναι το Java Development Toolkit ή JDK της Sun του οποίου µια έκδοση µπορείτε να κατεβάσετε από το διαδίκτυο στη διεύθυνση products/jdk/1.1/index.html. Στη συνέχεια, και µόνο αφού εγκαταστήσετε το περιβάλλον ανάπτυξης ακολουθώντας τις οδηγίες του κατασκευαστή, µπορείτε να προχωρήσετε στη µελέτη της ενότητας. H ενότητα περιγράφει τη διαδικασία ανάπτυξης Java προγράµµατος. Ένα Java πρόγραµµα µπορεί να έχει µια από τις παρακάτω µορφές: Aυτόνοµη εφαρµογή (stand alone program). Αποτελεί την κλασσική µορφή προγραµµάτων που γνωρίζετε. Για την εκτέλεση της απαιτείται ο Java διερµηνευτής (interpreter). Applet. Είναι ένα µικρό πρόγραµµα που συνήθως αποθηκεύεται σ έναν αποµακρυσµένο υπολογιστή, στον οποίο οι χρήστες µπορούν να συνδεθούν µε τη χρήση ενός προγράµµατος πλοήγησης για να κατεβάσουν και να εκτελέσουν το applet σαν κοµµάτι µιας ιστοσελίδας. Ένα applet µπορεί να εκτελεστεί εναλλακτικά και από ένα applet viewer [4]. Η διαδικασία ανάπτυξης ενός προγράµµατος Java εξαρτάται από τη µορφή του και περιγράφεται χωριστά για κάθε περίπτωση στη συνέχεια. [3] Θα την χαρακτηρίζαµε σαν όχι απόλυτα αντικειµενική. [4] Eίναι ένας browser µε την ελάχιστη δυνατή λειτουργικότητα που απαιτείται για την εκτέλεση ενός applet.

29 π π π À ƒ ƒ ªª JAVA È ÈÎ Û Ó appleù ÍË ÙfiÓÔÌË ÂÊ ÚÌÔÁ Η διαδικασία ανάπτυξης αυτόνοµου προγράµµατος σε ένα τυπικό περιβάλλον ανάπτυξης Java εφαρµογών όπως το JDK της Sun περιλαµβάνει τα παρακάτω βήµατα: 1. συγγραφή του πηγαίου κώδικα, 2. µεταγλώττιση του πηγαίου κώδικα, 3. εκτέλεση του προγράµµατος. Συγγραφή πηγαίου κώδικα Για τη συγγραφή του πηγαίου κώδικα θα χρησιµοποιήσετε ένα editor της αρεσκείας σας. Στο Unix µπορείτε, για παράδειγµα, να χρησιµοποιήσετε τον vi ή τον emacs, ενώ στα Windows Microsoft το Notepad ή ακόµη και τον DOSEdit. Βέβαια ολοκληρωµένα περιβάλλοντα ανάπτυξης (Integrated Development Environments IDEs), όπως το Visual J++ της Microsoft ή το Visual Cafe της Symantec, έχουν τους δικούς τους εξειδικευµένους editors. Σε κάθε περίπτωση η αποθήκευση του πηγαίου κώδικα πρέπει να γίνεται σε αρχείο, του οποίου η επέκταση πρέπει να είναι.java. Προσέξτε! Aν ο editor σας, προσθέτει διαφορετική επέκταση, πρέπει να τη διορθώσετε. Μεταγλώττιση Η µεταγλώττιση γίνεται από τον µεταγλωττιστή της Java που φέρει το όνοµα javac. Ο µεταγλωττιστής µεταφράζει τον πηγαίο κώδικα Java σε bytecodes, τη γλώσσα που κατανοεί και εκτελεί ο διερµηνευτής της Java. Θα πρέπει να παρατηρήσουµε ότι ο µεταγλωττιστής δεν δηµιουργεί εκτελέσιµο κώδικα της µηχανής εκτέλεσης, αλλά µιας υποθετικής µηχανής που έχει σαν εκτελέσιµο κώδικα τον ονοµαζόµενο bytecodes. Κάθε µηχανή που διαθέτει διερ- µηνευτή Java µπορεί να θεωρηθεί ιδεατή µηχανή Java (Java virtual machine) και να εκτελέσει bytecodes. Για τη µεταγλώττιση θα πρέπει να δοθεί στη γραµµή εντολών του συστήµατός σας (DOS prompt για Windows 95 ή NT και shell prompt για UNIX) η εντολή: javac <fióôì appleúôáú ÌÌ ÙÔ >.java Αν ο µεταγλωττιστής σας εντοπίσει λάθη, τα αναφέρει. ιαφορετικά δηµιουργεί ένα αρχείο [5] µε το όνοµα του προγράµµατος και επέκταση.class, το [5] Στη συνέχεια θα δούµε πως δηµιουργεί ένα αρχείο για κάθε κλάση του προγράµµατος Java.

30 30 º π 2: Eπ ø JAVA οποίο περιέχει την αναπαράσταση του προγράµµατος σε bytecodes και αποτελεί το εκτελέσιµο πρόγραµµα. Εκτέλεση Η εκτέλεση του προγράµµατος είναι µια σύνθετη διεργασία, διαφορετική από αυτή των προγραµµάτων των προστακτικών γλωσσών, όπως η C, Pascal και Fortran. Γίνεται µε τη χρήση του Java διερµηνευτή, τον οποίο ενεργοποιούµε µε την παρακάτω εντολή της γραµµής διαταγών: java <fióôì appleúôáú ÌÌ ÙÔ > Προσοχή! εν απαιτείται η προσθήκη της επέκτασης.class. Με την εκτέλεση του διερµηνευτή της Java το σύστηµα µεταµορφώνεται σε µια µηχανή που κατανοεί και εκτελεί bytecodes, δηλαδή σε µια ιδεατή µηχανή Java. Ο διερµηνευτής της Java O Java διερµηνευτής αποτελείται, όπως φαίνεται και στο σχήµα 2.1, από τα παρακάτω επί µέρους τµήµατα: class loader Aναλαµβάνει να φορτώσει στη µνήµη του υπολογιστή τον κώδικα bytecode είτε από το τοπικό σύστηµα αρχείων είτε διαµέσου του δικτύου. bytecode verifier Aναλαµβάνει να ελέγξει κάθε τµήµα (κλάση, όπως θα δούµε στη συνέχεια) κώδικα bytecode που προέρχεται από το δίκτυο, για να διασφαλίσει ότι δεν παραβιάζονται οι περιορισµοί ασφαλείας που θέτει το περιβάλλον Java. Είναι προφανές ότι το περιβάλλον Java πρέπει να έχει περιορισµούς οι οποίοι εµποδίζουν τις εφαρµογές που κατεβάζετε από το δίκτυο να προκαλούν ζηµιές στο σύστηµά σας (π.χ. διαγραφή αρχείων του δίσκου σας), όταν εκτελούνται. interpreter Tο τελευταίο αυτό τµήµα, που δίνει και το όνοµά του στο όλο πρόγραµµα, διερµηνεύει τον κώδικα bytecode, εντολή προς εντολή, σε γλώσσα µηχανής η οποία εκτελείται από την CPU του µηχανήµατος. H παραπάνω διαδικασία δεν λειτουργεί συνήθως αµέσως. Μετά από κάθε φάση είναι πιθανό να εντοπιστούν λάθη. Τα λάθη αυτά αναφέρονται από το σύστηµα, διορθώνονται από τον προγραµµατιστή και η διαδικασία επαναλαµβάνεται µέχρι την επιτυχή έκβασή της.

31 π π π À ƒ ƒ ªª JAVA 31 Xρόνος µεταγλώττισης Java source Xρόνος εκτέλεσης Bytecode Loader Java µεταγλωττιστής Bytecodes µετακινούνται διαµέσου του δικτύου ή του συστήµατος αρχείων Bytecode Verifier ιερµηνευτής Code Generator Java Bytecode Run time Yλικό Ì 2.1. Ανάπτυξη και εκτέλεση Java εφαρµογής. Για την εξοικείωση µε την παραπάνω διαδικασία, χρησιµοποιήστε τον πηγαίο κώδικα του Παραδείγµατος 1.2 που ακολουθεί για να δηµιουργήσετε και να εκτελέσετε µια απλή αυτόνοµη εφαρµογή Java. Ú ÛÙËÚÈfiÙËÙ 2.1 Ú ÂÈÁÌ 2.1 Αναπτύξτε ένα πρόγραµµα σε Java που θα τυπώνει στην οθόνη το γνωστό σας πλέον µήνυµα «Hello World». Στη φάση αυτή δεν µας ενδιαφέρει να κατανοήσετε πλήρως τον κώδικα Java που δίνεται στο σχήµα 2.2. Αυτό θα γίνει σε επόµενα κεφάλαια. Πρέπει όµως να εκτελέσετε οπωσδήποτε τη διαδικασία στον υπολογιστή σας µέχρι την επιτυχή εκτέλεση του προγράµµατος. public class HelloWorld { static final String message = "Hello World!"; public static void main(string[] arg){ System.out.println(message); Ì 2.2 Πηγαίος κώδικας για το πρόγραµµα Hello World.

32 32 º π 2: Eπ ø JAVA Είναι σηµαντικό να επισηµάνουµε ότι κάθε πρόγραµµα Java πρέπει να περιλαµβάνει τον ορισµό µιας τουλάχιστο public κλάσης. Η κλάση αυτή πρέπει να περιέχει µια συνάρτηση (που καλείται µέθοδος όπως θα δούµε στο επό- µενο κεφάλαιο) µε όνοµα main, (µην ξεχνάµε πως η Java επηρεάσθηκε από την C), η οποία πρέπει να είναι public και static. Ο διερµηνευτής της Java αρχίζει την εκτέλεση του προγράµµατος από τη µέθοδο main. Η main του παραδείγµατός µας περιέχει µια µόνο πρόταση η οποία έχει σαν αποτέλεσµα την εκτύπωση στην κύρια έξοδο, του µηνύµατος «Hello World». Χρησιµοποιήστε, σαν πρώτο βήµα, έναν editor για να γράψετε τον πηγαίο κώδικα και στη συνέχεια να τον σώσετε σε ένα αρχείο µε όνοµα ίδιο µε αυτό της public κλάσης του και επέκταση.java. Πρέπει δηλαδή να δηµιουργήσετε το αρχείο HelloWorld.java. Στη συνέχεια µεταγλωττίστε τον κώδικα Java σε bytecode καλώντας τον java µεταγλωττιστή της Java: javac HelloWorld.java Ο µεταγλωττιστής, αν δεν εντοπίσει λάθη τα οποία πρέπει να διορθώσετε, παράγει στο τρέχον ευρετήριο το αρχείο HelloWorld.class Το αρχείο αυτό περιέχει το πρόγραµµα µας σε αναπαράσταση bytecode και µπορεί να εκτελεστεί σε οποιοδήποτε σύστηµα που διαθέτει διερµηνευτή της Java. Για την εκτέλεση του προγράµµατος καλέστε το διερµηνευτή Java όπως παρακάτω: java HelloWorld Το αποτέλεσµα θα είναι η εµφάνιση στην οθόνη της γραµµής HelloWorld! È ÈÎ Û Ó appleù ÍË Applet Η διαδικασία ανάπτυξης applet περιλαµβάνει: 1. τη συγγραφή του πηγαίου κώδικα. Χρησιµοποιήστε ένα editor της αρεσκείας σας π.χ. Notepad. 2. τη µεταγλώττιση του πηγαίου κώδικα σε bytecodes. Χρησιµοποιήστε το µεταγλωττιστή javac. 3. τη δηµιουργία, µέσα σε µία HTML σελίδα, µιας αναφοράς προς το παρα-

33 π π π À ƒ ƒ ªª JAVA 33 γόµενο αρχείο.class 4. την εκτέλεση του applet. Χρησιµοποιήστε ένα πρόγραµµα πλοήγησης ή ένα applet viewer για να φορτώσετε την HTML σελίδα που περιέχει την αναφορά στο applet. Χρησιµοποιήστε τον πηγαίο κώδικα του Παραδείγµατος 2.2 για να δηµιουργήσετε ένα Java applet. Στη συνέχεια δηµιουργήστε µια HTML σελίδα, ενσωµατώστε σε αυτή το applet που δηµιουργήσατε και χρησιµοποιήστε ένα πρόγραµµα πλοήγησης για να δείτε την εκτέλεση του applet σας. Ú ÛÙËÚÈfiÙËÙ 2.2 Ú ÂÈÁÌ 2.2 Το πρόγραµµα του οποίου ο πηγαίος κώδικας δίνεται στο σχήµα 2.3, χρησι- µοποιείται για να δείξει τη διαδικασία παραγωγής και εκτέλεσης ενός applet. Προς το παρόν δεν θα ασχοληθούµε µε τη σηµασία του πηγαίου κώδικα. 1 // Ú ÂÈÁÌ 1. ÙÔ appleúòùô applet 2 import java.applet.applet; // Î ÓÂÈ import ÙËÓ ÎÏ ÛË // Applet 3 import java.awt.*; // Î ÓÂÈ import ÙÔ apple Î ÙÔ awt 4 5 public class HelloWorld extends Applet { 6 // Ì ıô Ô ÂÌÊ Ó ÂÈ ÙÔ applet. 7 // ÎÏ ÛË Graphics appleôûùëú ÂÈ ÙÈ appleâèîôó ÛÂÈ ÛÙË // Java. 8 public void paint(graphics g) { 9 g.drawstring("hello World",50, 50); Ì 2.3 Πηγαίος κώδικας απλού Java applet.

34 34 º π 2: Eπ ø JAVA Ακολουθήστε προσεκτικά τα παρακάτω βήµατα: Βήµα 1: Χρησιµοποιήστε τον editor σας για να γράψετε το πρόγραµµα και να το αποθηκεύσετε στο αρχείο HelloWorld.java. Παραλείψτε την αρίθ- µηση στο αριστερό άκρο, δεν αποτελεί µέρος του προγράµµατος. Έγινε για να διευκολύνει την αναφορά στις επιµέρους προτάσεις του προγράµµατος, όταν στη συνέχεια της ενότητας θα τις σχολιάσουµε µία προς µία. Βήµα 2: Καλέστε το µεταγλωττιστή για να δηµιουργήσετε την bytecode αναπαράσταση javac HelloWorld.java Αν ο µεταγλωττιστής δεν ανιχνεύσει λάθη, παράγει το αρχείο HelloWorld.class. Αν η µεταγλώττιση αποτύχει, διορθώστε τα λάθη που σας αναφέρει ο µεταγλωττιστής και επαναλάβετε τη διαδικασία. Μια λίστα µε τα πιθανά λάθη και τις λύσεις τους, µπορείτε να βρείτε στο διαδίκτυο στη διεύθυνση /problems/index.html, κάτω από τον τίτλο «Common Compiler and Interpreter Problems (and Their Solutions)». Βήµα 3: Για να ενεργοποιήσετε το applet που µόλις κατασκευάσατε, πρέπει να δηµιουργήσετε σε ένα HTML [6] αρχείο, µια αναφορά προς αυτό. Μπορείτε να δηµιουργήσετε ένα HTML αρχείο ακολουθώντας έναν από τους παρακάτω δύο τρόπους: α) Χρησιµοποιήστε ένα text editor για να δηµιουργήσετε ένα αρχείο µε όνοµα Hello.html, στο ίδιο ευρετήριο µε αυτό που βρίσκεται το αρχείο HelloWorld.class που µόλις δηµιουργήσατε. Το αρχείο θα πρέπει να περιέχει το παρακάτω κείµενο: <HTML> <HEAD> <TITLE> ŒÓ appleïfi applet </TITLE> </HEAD> <BODY> [6] H HTML (Hypertext Markup Language) χρησιµοποιείται για τη διαµόρφωση ιστοσελίδων του διαδικτύου, οι οποίες είναι κατανοητές από προγράµµατα πλοήγησης, όπως το Communicator της Netscape, το Internet Explorer της Microsoft και το HotJava της Sun.

35 π π π À ƒ ƒ ªª JAVA 35 ÎÔÏÔ ıâ Ë ÍÔ Ô ÙÔ appleïô Java applet: <APPLET CODE="HelloWorld.class" WIDTH=350 HEIGHT=200> </APPLET> </BODY> </HTML> β) Μπορείτε εναλλακτικά να δηµιουργήσετε µια HTML σελίδα από τον κει- µενογράφο Word της Microsoft. ιαµορφώστε το περιεχόµενο µιας σελίδας του Word µε τις πληροφορίες που θέλετε να περιέχει η σελίδα. Σώστε το κεί- µενο σας σαν «HTML document» και στη συνέχεια εισάγετε (επιλέξτε «Insert HTML tag») την παρακάτω αναφορά για την εµφάνιση του applet: <APPLET CODE="HelloWorld.class" WIDTH=350 HEIGHT=200> </APPLET> Η αναφορά αυτή ορίζει το όνοµα του applet, καθώς και τις διαστάσεις σε pixels της περιοχής του παραθύρου του προγράµµατος πλοήγησης στο οποίο θα ανατεθεί στο applet. Σώστε τη σελίδα σας σε ένα αρχείο µε το όνοµα Hello.html. Βήµα 4: Για να εκτελέσετε το applet θα πρέπει να φορτώσετε τη σελίδα σας (δηλαδή το αρχείο Hello.html) σε ένα πρόγραµµα πλοήγησης ή applet viewer [7]. Όταν ο browser ή ο applet viewer εντοπίσει στην HTML σελίδα µια αναφορά σε ένα applet, ενεργοποιεί τον Java class loader για να φορτώσει το applet. Στη συνέχεια ενεργοποιείται ο bytecode verifier, ο οποίος ελέγχει τον κώδικα του applet για να διασφαλίσει ότι δεν παραβιάζονται οι κανόνες ασφάλειας της Java. Τέλος, ο ενσωµατωµένος στο πρόγραµµα πλοήγησης διερµηνευτής εκτελεί το applet µε αποτέλεσµα την εµφάνιση στο παράθυρο του προγράµµατος πλοήγησης του παρακάτω µηνύµατος: Ακολουθεί η έξοδος του απλού Java applet: Hello World H ÂÍ ÁËÛË ÂÓfi appleïô Applet Ας δούµε πώς δουλεύει το applet που µόλις δηµιουργήσατε. Και πρώτ απ όλα, θα αρχίσουµε από τα σχόλια, τα οποία είναι απαραίτητα σε πολλά σηµεία για την αύξηση της αναγνωσιµότητας του πηγαίου κώδικα. Χρησι- [7] Xρησιµοποιήστε την εντολή appletviewer Hello.html για να φορτώσετε την HTML σελίδα σας στον appletviewer.

36 36 º π 2: Eπ ø JAVA µοποιήστε το // για να δείξετε ότι ακολουθούν σχόλια στο υπόλοιπο τµήµα της γραµµής (γραµµή 2).Καλή προγραµµατιστική τεχνική είναι η τοποθέτηση στην αρχή του προγράµµατος σχολίων τα οποία περιγράφουν τον σκοπό του προγράµµατος (γραµµή 1). Θυµόσαστε σίγουρα οτι για την ανάπτυξη οποιασδήποτε σχεδόν εφαρµογής ήταν απαραίτητη η χρήση της βασικής βιβλιοθήκης της C. Η βιβλιοθήκη αυτή αποτελείται από ένα σύνολο από καλώς επιλεγµένες συναρτήσεις γενικού σκοπού, που µας διευκολύνουν στην διαδικασία ανάπτυξης. Κάθε συνάρτηση αποτελεί υλοποίηση µιας βασικής διεργασίας. Αντίστοιχα, στην Java, ένας µεγάλος αριθµός από κλάσεις είναι διαθέσιµος για άµεση χρήση από τον προγραµµατιστή. Οι κλάσεις είναι οργανωµένες σε κατηγορίες, µε κάθε κατηγορία να αναφέρεται σαν πακέτο (package). Το σύνολο των πακέτων είναι γνωστό σαν Java class library ή Java Applications Programming Interface (Java API). Οι κλάσεις κάθε πακέτου βρίσκονται σε ένα υποευρετήριο κάτω από το ευρετήριο Java του JDK. Για να χρησιµοποιήσετε µία κλάση θα πρέπει να ενηµερώσετε κατάλληλα το µεταγλωττιστή, εισάγοντας την κατάλληλη πρόταση import στην αρχή του προγράµµατός σας. Οι προτάσεις import ενηµερώνουν επιπλέον το µεταγλωττιστή για τη θέση των κλάσεων στο σύστηµα σας. Το αλφαριθµητικό που ακολουθεί τη λέξη κλειδί import, αποτελείται µόνο από το όνοµα του υποευρετηρίου στο οποίο είναι αποθηκευµένο το πακέτο, οπότε ο µεταγλωττιστής αναγνωρίζει ένα πακέτο (το πακέτο awt στην γραµµή 3) ή περιλαµβάνει και το όνοµα µιας κλάσης, οπότε ο µεταγλωττιστής αναγνωρίζει τη συγκεκριµένη κλάση (την κλάση applet στη γραµµή 2). Ο µεγάλος αριθµός των διαθέσιµων κλάσεων διευκολύνει τον προγραµµατιστή να αναπτύξει σύνθετα προγράµµατα, επαναχρησιµοποιώντας παρά δηµιουργώντας από το µηδέν κλάσεις. Είναι φανερό λοιπόν, ότι µόνο η γνώση της γλώσσας δεν είναι πλέον αρκετή για την ανάπτυξη εφαρµογών. Η καλή γνώση της βασικής βιβλιοθήκης κλάσεων είναι αυτό που αυξάνει την παραγωγικότητα ενός προγραµµατιστή. Βέβαια, ο προγραµµατιστής έχει επιπλέον τη δυνατότητα να αναπτύξει τις δικές του κλάσεις και να τις οργανώσει σε δικά του πακέτα. Κάθε πρόγραµµα Java αποτελείται από τη δήλωση µιας τουλάχιστον κλάσης. Την κλάση αυτή που αναπαριστά το υπό ανάπτυξη πρόγραµµα, ο προγραµµατιστής έχει την δυνατότητα να τη δηλώσει ως νέα κλάση εξ αρχής ή

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi )

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) E π A π π ª π Â È ÛÌfi ÔÁÈÛÌÈÎÔ TfiÌÔ ' KÏÂ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

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

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ ' KÏ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛ ÚÔÁÚ ÌÌ ÙÈÛÌÔ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

Tεχνολογία Λογισµικού II

Tεχνολογία Λογισµικού II Tεχνολογία Λογισµικού II ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Tεχνολογία Λογισµικού II BAΣIΛEIOΣ

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

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ A' HÏ appleèù ÎË EÈÛ ÁˆÁ ÛÙËÓ EappleÈÛÙ ÌË ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

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

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

HelloApplet. Παύλος Εφραιμίδης Java Applets 1 HelloApplet Παύλος Εφραιμίδης pefraimi@ee.duth.gr Java Applets 1 Applets Τα Applets είναι προγράμματα Java που μπορούν να εκτελεστούν μέσα στο περιβάλλον ενός Browser (Firefox, Internet Explorer, Netscape,

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

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ. TfiÌÔ ' ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ. ÎÔı Ó ÛË

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ. TfiÌÔ ' ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ. ÎÔı Ó ÛË E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ TfiÌÔ ' apple Ú ˆÓ ÎÔı Ó ÛË ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ

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

TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ

TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ E π A π π ª π TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ TfiÌÔ ' AÓ ÛÙ ÛÈÔ EÌ ÏˆÙ YappleÔÏÔÁÈÛÙ Î È KÔÈÓˆÓ, Information Society ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

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

(Logic Gate Simulator)

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

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

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ A' B Û ÏÂÈÔ KfiÌË È ÎÙÈÎ ÙË ÏËÚÔÊÔÚÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Aı Ó ÛÈÔ X ÛÈ Îfi ËÌ ÙÚÈÔ ÂÔ ˆÚ ÎfiappleÔ ÏÔ TfiÌÔ ' XÚÔÓÈÎfi Î È OÈÎÔÓÔÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi ŒÚÁˆÓ Xρονικός και Oικονομικός Προγραμματισμός Έργων Σημείωση Το

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

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

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

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

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË E π A π π ª π Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi Î È MÔÓÙÂÏÔappleÔ ËÛË TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË MÔÓÙÂÏÔappleÔ ËÛË Î È ÚÔÛÔÌÔ ˆÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

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

Θεωρία Πληροφορίας και Kωδικοποίησης

Θεωρία Πληροφορίας και Kωδικοποίησης Θεωρία Πληροφορίας και Kωδικοποίησης Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική

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

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ E π A π π ª π È ÎÚÈÙ M ıëì ÙÈÎ Î È M ıëì ÙÈÎ ÔÁÈÎ TfiÌÔ A' ÂÒÚÁÈÔ BÔ ÚÔ È ÎÚÈÙ M ıëì ÙÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ Θεµατική Eνότητα

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

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ E' AÓ Ú T fiáèô ÛÂÈ ÚÔÌËıÂ Ù AÁÔÚ ÛÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

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

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

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

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες: Άσκηση 5Α_5 26/3/2003 11.5. Άσκηση 5A - [αναγνώριση αντικειµένων-διάγραµµα κλάσεων] [Σε αντικατάσταση της άσκησης 5 του κεφαλαίου 11] 11.5.1. Περιγραφή Η άσκηση αυτή είναι η πρώτη από µία σειρά ασκήσεων

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

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ B' NÈÎfiÏ Ô TÚ ÏÈ EappleÈıÂÒÚËÛË ÛÙËÌ ÙˆÓ ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ

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

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

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

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

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

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

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

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ ' AÓ Ú T fiáèô TÔ KfiÛÙÔ ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

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

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ E' Aı Ó ÛÈÔ apple ÚÁ ÚË ÂÈÁÌ ÙÔÏË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IΣΦAΛIΣH

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

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

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

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

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ. TfiÌÔ B' NÂ ÚˆÓÈÎ ÎÙ Î È ÓÔ AÚÁ Ú ÎË EÊ ÚÌÔÁ

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ. TfiÌÔ B' NÂ ÚˆÓÈÎ ÎÙ Î È ÓÔ AÚÁ Ú ÎË EÊ ÚÌÔÁ E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ TfiÌÔ B' ÓÔ AÚÁ Ú ÎË NÂ ÚˆÓÈÎ ÎÙ Î È EÊ ÚÌÔÁ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

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

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ B' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ ÈÎÙ ˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική

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

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ A' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

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

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ B' B Û ÏÂÈÔ KfiÌË AÓ ÛÙ ÛÈÔ MÈÎÚfiappleÔ ÏÔ ÏËÚÔÊÔÚÈÎ ÛÙËÓ EÎapple  ÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

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

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ A' X Ú Ï ÌappleÔ AÁÁÂÏfiappleÔ ÏÔ Â È ÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH

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

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

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

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

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006) exercise 6new_10 12/5/2008 12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006) 12.6.1. Περιγραφή Θεωρήστε την γραφική διεπαφή της αριθµοµηχανής των MS Windows. Μια παρόµοια διεπαφή (δες

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

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

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

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) 18-10-06 09:13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως

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

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

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

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

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

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

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

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ B' ÏÔ apple Ú ÎË ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ

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

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

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

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

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

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

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

Ψηφιακή επεξεργασία εικόνων και σηµάτων

Ψηφιακή επεξεργασία εικόνων και σηµάτων Ψηφιακή επεξεργασία εικόνων και σηµάτων Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική

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

Υποστηρικτικό υλικό Σημειώσεις

Υποστηρικτικό υλικό Σημειώσεις ΔΙΑΔΙΚΤΥA : Υπηρεσίες, Τεχνολογία, Εφαρμογές Τμήμα Πληροφορικής Α.Π.Θ. Υποστηρικτικό υλικό Σημειώσεις Διδάσκοντες : Α. Βακάλη Γ. Παπαδημητρίου Εαρινό εξάμηνο 2000 2001 ΜΕΡΟΣ ΙΙ J A V A ΔΙΑΔΙΚΤΥA : Υπηρεσίες,

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

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004)

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004) exercise 6new_6 23/2/2005 12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004) 12.6.1. Περιγραφή Θεωρήστε την γραφική διεπαφή της αριθµοµηχανής των MS Windows. Μια παρόµοια διεπαφή (δες

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

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

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

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

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ ' Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ BÏ ÛË M Ú ÓÙ

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ ' Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ BÏ ÛË M Ú ÓÙ E π A π π ª π º ÛÈÎÔ ËÌÂ TfiÌÔ ' BÏ ÛË M Ú ÓÙ Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ Θεµατική Ενότητα

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Σχεδιασμός και Eκτίμηση Έργων

Σχεδιασμός και Eκτίμηση Έργων Σχεδιασμός και Eκτίμηση Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα

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

ιαχείριση και Ποιότητα Λογισµικού

ιαχείριση και Ποιότητα Λογισµικού ιαχείριση και Ποιότητα Λογισµικού Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα

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

Aρχές Διοίκησης Επιχειρήσεων

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

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

Aισθητήρες και Mικροαισθητήρες

Aισθητήρες και Mικροαισθητήρες TÛÔ Î Ï (128Û.) 2/1/2004 14:03 ÂÏ 1 Aισθητήρες και Mικροαισθητήρες Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

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

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

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

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

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ ' NÈÎfiÏ Ô ÔÁÔı ÙË È ÈÎ Û Â Î È T ÓÈÎ ÓÂ Ô BÂÏÙ ˆÛË ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ Τόµος A' ίκτυα Υπολογιστών ΙΙ ΓΙΩΡΓΟΣ ΦΟΥΣΚΑΣ Ειδικός Λειτουργικός

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

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version 1. Ξεκινώντας Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να περιγράψετε τα κύρια χαρακτηριστικά της γλώσσας Java Να περιγράψετε τη Java Virtual Machine Να περιγράψετε πώς λειτουργεί ο μηχανισμός «συλλογής

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα BΑΣΙΚΑ ΖΗΤΗΜΑΤΑ ΙΚΤΥΩΝ Η/Υ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα BΑΣΙΚΑ ΖΗΤΗΜΑΤΑ ΙΚΤΥΩΝ Η/Υ ίκτυα Yπολογιστών I Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα και πληρότητα

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

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

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

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

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

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

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

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

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

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

Eισαγωγή στην Πυρηνική Φυσική

Eισαγωγή στην Πυρηνική Φυσική Eισαγωγή στην Πυρηνική Φυσική Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα

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

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I TfiÌÔ ' NÈÎfiÏ Ô. K Ï ÊË HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ Θεµατική

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

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

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

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

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË E π A π π ª π OÚÁ ÓÈÎ XËÌ TfiÌÔ ' I.. ÂÚÔı Ó ÛË º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛÂˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας ΣΠΟΥ ΕΣ ΣΤΙΣ ΦΥΣΙΚΕΣ ΕΠΙΣΤΗΜΕΣ Oργανική Xηµεία Tόµος

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

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ TfiÌÔ A' ÂÒÚÁÈÔ KÔÚÚ Aı Ó ÛÈÔ X ÛÈ Îfi OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Oικονομική Tεχνικών Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

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

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

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Ελληνικό Ανοικτό Πανεπιστήμιο ΓΤΠ61 Πληροφορική Πολυμέσα Αγγελική Μαζαράκη Τι είναι η UML Είναι μια γραφική γλώσσα μοντελοποίησης συστημάτων.

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 1 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής M E KO. E. (192Û.) 23/5/2003 15:36 ÂÏ 1 Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη

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

Θεµέλια Γραµµικού Προγραµµατισµού

Θεµέλια Γραµµικού Προγραµµατισµού Θεµέλια Γραµµικού Προγραµµατισµού Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα

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

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ TfiÌÔ ' ËÌ ÙÚÈÔ ÂˆÚÁ Î ÎË YÁÚ ÂˆÚÁÈÎ Aapplefi ÏËÙ Yγρά Γεωργικά Aπόβλητα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

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

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

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

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

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών KO MA E I O OIH H 30/5/2003 12:32 ÂÏ 1 Eπιστήµη Πολυµερών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

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

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

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

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

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

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

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

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Αναδροµή Σύντοµη Αναδροµή Η γλώσσα προγραµµατισµού C είναι µία γλώσσα

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Επεξήγηση web site με λογικό διάγραμμα «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλοί άνθρωποι

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

Εγχειρίδιο Χρήστη - Μαθητή

Εγχειρίδιο Χρήστη - Μαθητή Εγχειρίδιο Χρήστη - Μαθητή 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

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

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

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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