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

Σχετικά έγγραφα
Αλγόριθμοι και Πολυπλοκότητα

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

Σχεδίαση Λογισμικού. Σημείωση

Διαχείριση Δεδομένων

Προηγμένα Θέματα Δικτύων Υπολογιστών

Σχεδιασμός και Διαχείριση Λογισμικού

Προχωρημένα Ζητήματα Σχεδιασμού Κατανεμημένων Συστημάτων Εγχειρίδιο Μελέτης

Ζητήματα Σχεδιασμού και Προγραμματισμού Συστημάτων ΔιάχυτουΥπολογισμού

Βασικές Εξειδικεύσεις σε Αρχιτεκτονική και Δίκτυα Υπολογιστών

Αρχιτεκτονικές Συστημάτων Διάχυτου και Σφαιρικού Υπολογισμού

Σχεδίαση Middleware Εγχειρίδιο Μελέτης

Οργάνωση και Αλληλεπιδράσεις σε Μοριακό Επίπεδο

Εφαρμογές Φωτισμού και Πολυμεσικές Εφαρμογές

Ειδικά Θέματα Ακουστικού Σχεδιασμού και Πολυμέσων

Ηχομόνωση Ηχοπροστασία

Τεχνολογία Φωτισμού και Σύνδεση με την Παραγωγή

Ηχομόνωση Ηχοπροστασία

Ρύπανση-Ενέργεια και Τεχνολογίες Αντιρύπανσης

Λογισμικό και Μέθοδοι για Ακουστικό Σχεδιασμό

Οργάνωση και Αλληλεπιδράσεις σε Μοριακό Επίπεδο

Ρύπανση-Ενέργεια και Τεχνολογίες Αντιρύπανσης

Τεχνολογία Φωτισμού και Σύνδεση με την Παραγωγή

Συστήματα Διάχυτου και Σφαιρικού Υπολογισμού

Γενικές Αρχές Φωτισμού

Εφαρμογές Φωτισμού και Πολυμεσικές Εφαρμογές

Γενικές Αρχές Φωτισμού

Ιστορία της Τέχνης και Ιστορία της Επιστήμης του Φωτός

Κρυπτογραφία και Ασφάλεια Δικτύων

Ρύπανση-Ενέργεια και Τεχνολογίες Αντιρύπανσης

Δρ. Φώτης Κοντομίχος Δρ. Θωμάς Ζαρούχας Δρ. Παναγιώτης Χατζηαντωνίου

Ήχος και Τέχνες. Ήχος και Ακουστική στη Μουσική ΤΟΜΟΣ A. Ανδρέας Φλώρος Επίκ. Καθηγητής Ιονίου Πανεπιστημίου

Βασικές Εξειδικεύσεις σε Αρχιτεκτονική και

Δίκτυα Υπολογιστών. Σημείωση

Πρωτόκολλα, Υπηρεσίες και Εφαρμογές Ασύρματων Δικτύων Εγχειρίδιο Μελέτης

Ψηφιακές Επικοινωνίες

Εργαλεία Γνώσης για τη Σχεδίαση και Προσομοίωση Έργων Φωτισμού

Σύγχρονες Μέθοδοι Προγραμματισμού

Σϋγχρονεε Προσεγγίσει ins Εκπαίδευσηε Ενηλίκων

Επικοινωνία Ανθρώπου-Υπολογιστή

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

ÚıÔ ÔÍ ÛÙÔÓ 20fi ÈÒÓ. È ÏÔÁÔ ÙË ÚıÔ ÔÍ ÌÂ ÛË Î È Ó ÙÔÏ Δ ª. Ú Ú Ù μ Û ÏÂÈÔ Ú μ ÏÏÈ Ó ÙÔ ÕÁÁÂÏÔ. apple Î. ıëáëù

Περιεχόμενα. Περιεχόμενα

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

μ ÛÈÎ Ú ÈÎ Ô Î È ÈÔ ÎËÛË

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

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

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

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

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

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

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

μ ÛÈÎ Ú ÈÎ Ô Î È ÈÔ ÎËÛË

Γλώσσα, Κοινωνία και Εκπαίδευση

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

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

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

- Επιστημονικός Υπεύθυνος Ενεργείας: Θεόδωρος Γ. Εξαρχάκος Καθηγητής του Πανεπιστημίου Αθηνών Πρόεδρος του Παιδαγωγικού Ινστιτούτου «Αναμόρφωση / εκ

Περιεχόμενα. 2 Αριθμητικά συστήματα

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

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

ΕΠΙΧΕΙΡΗΣΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ «ΑΝΤΑΓΩΝΙΣΤΙΚΟΤΗΤΑ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ» ΚΑΙ ΠΕΡΙΦΕΡΕΙΩΝ ΣΕ ΜΕΤΑΒΑΣΗ

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

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

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

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

ΕΛΛΗΝΙΚΆ ΑΚΑΔΗΜΑΪΚΆ ΗΛΕΚΤΡΟΝΙΚΆ ΣΥΓΓΡΆΜΜΑΤΑ ΚΑΙ ΒΟΗΘΉΜΑΤΑ

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΨΗΦΙΑΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ. Σαράντος Καπιδάκης

Μαθήματα 1 ου εξαμήνου

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ. ακαδ. έτους

Certified Java Programmer (CJP)

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

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

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

Ενότητα 1: Παρουσίαση μαθήματος. Διδάσκων: Βασίλης Κόμης, Καθηγητής

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

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

Οργάνωση και Αλληλεπιδράσεις σε Μοριακό Επίπεδο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ & ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ (ΕΠΙΤΡΟΠΗ ΕΡΕΥΝΩΝ) ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

Διδακτική της Πληροφορικής

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Μαθήματα 1 ου εξαμήνου

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ. ακαδ. έτους

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ. Διεύθυνση Σπουδών ΩΡΕΣ ΑΙΘΟΥΣΕΣ ΕΞ.-ΤΥΠΟΣ ΜΑΘΗΜΑ ΤΜΗΜΑ ΚΩΔΙΚΟΣ. Πέμπτη, 01/09/2016

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

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

Transcript:

Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό Πρόγραμμα «Εκπαίδευση και Διά Βίου Μάθηση» (ΕΠΕΔΒΜ) του ΕΣΠΑ (2007-2013), Άξονας Προτεραιότητας 7: «Ενίσχυση της Διά Βίου Εκπαίδευσης Ενηλίκων στις 8 Περιφέρειες Σύγκλισης» με κωδικό MIS 296121 και η οποία συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο - ΕΚΤ) και από εθνικούς πόρους, μέσω του Προγράμματος Δημοσίων Επενδύσεων (ΠΔΕ) του Υ.ΠΑΙ.Θ. Γλώσσες Προγραμματισμού Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα και πληρότητα των συγγραμμάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδη μα ϊ κοί υπεύθυνοι που ανέλαβαν το έργο αυτό.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΒΑΣΙΚΕΣ ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΣΕ ΘΕΩΡΙΑ ΚΑΙ ΛΟΓΙΣΜΙΚΟ Τόμος Β Γλώσσες Προγραμματισμού Συγγραφή ΓΕΩΡΓΙΟΣ ΜΑΥΡΟΜΜΑΤΗΣ Διδάκτωρ Πανεπιστημίου Πειραιώς ΕΥΑΓΓΕΛΟΣ ΣΑΚΚΟΠΟΥΛΟΣ Διδάκτωρ Πανεπιστημίου Πατρών Κριτική Ανάγνωση ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Ακαδημαϊκός Υπεύθυνος για την ανάπτυξη του έντυπου διδακτικού υλικού του Π.Σ. ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Συντονιστής για την ανάπτυξη του έντυπου διδακτικού υλικού της Θ.Ε. ΜΙΧΑΗΛ ΒΑΣΙΛΑΚΟΠΟΥΛΟΣ Αναπληρωτής Καθηγητής Πανεπιστημίου Θεσσαλίας Ειδικός στη Μεθοδολογία της Ανοικτής και εξ Αποστάσεως Εκπαίδευσης ΑΔΑΜΑΝΤΙΑ ΣΠΑΝΑΚΑ Γλωσσική Επιμέλεια ΚΑΤΕΡΙΝΑ ΕΥΣΤΑΘΙΟΥ Τεχνική Επιμέλεια Καλλιτεχνική Επιμέλεια Σελιδοποίηση opusmagnum ISBN: 978-960-538-983-3 Κωδικός Έκδοσης: ΠΛΣ 50/Β Copyright 2015 για την Ελλάδα και όλο τον κόσμο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πάροδος Αριστοτέλους 18, 26335 Περιβόλα Πατρών Τηλ.: 2610 367300, Φαξ: 2610 367650 To παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του Ελληνικού Νόμου (Ν. 2121/1993 όπως έχει τροποποιηθεί και ισχύει σήμερα) και τις διεθνείς συμβάσεις περί πνευματικής ιδιοκτησίας. Απαγορεύεται απολύτως η άνευ γραπτής αδείας του εκδότη, κατά οποιονδήποτε τρόπο ή μέσο, αντιγραφή, φωτοανατύπωση και εν γένει αναπαραγωγή, εκμίσθωση ή δανεισμός, μετάφραση, διασκευή, αναμετάδοση στο κοινό σε οποιαδήποτε μορφή (ηλεκτρονική, μηχανική κ.λπ.) και η εν γένει εκμετάλλευση του συνόλου ή μέρους του έργου.

Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΒΑΣΙΚΕΣ ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΣΕ ΘΕΩΡΙΑ ΚΑΙ ΛΟΓΙΣΜΙΚΟ Τόμος Β Γλώσσες Προγραμματισμού ΓΕΩΡΓΙΟΣ ΜΑΥΡΟΜΜΑΤΗΣ Διδάκτωρ Πανεπιστημίου Πειραιώς ΕΥΑΓΓΕΛΟΣ ΣΑΚΚΟΠΟΥΛΟΣ Διδάκτωρ Πανεπιστημίου Πατρών ΠΑΤΡΑ 2015

Βιογραφικά Ο Γεώργιος Μαυρομμάτης είναι μέλος του επιστημονικού προσωπικού στο Εθνικό Κέντρο Δημόσιας Διοίκησης και Αυτοδιοίκησης. Είναι κάτοχος πτυχίου Μαθηματικών (1984) του Πανεπιστημίου Αθηνών και διδακτορικού διπλώματος (2002) του Τμήματος Πληροφορικής του Πανεπιστημίου Πειραιώς. Στα επιστημονικά του ενδιαφέροντα περιλαμβάνονται οι αλγόριθμοι και οι γλώσσες προγραμματισμού, η τεχνολογία λογισμικού, η εκπαιδευτική τεχνολογία, η ανάκτηση πληροφορίας, η ηλεκτρονική διακυβέρνηση και η επιχειρησιακή έρευνα. O Ευάγγελος Σακκόπουλος είναι διδάκτορας Μηχανικός Η/Υ και Πληροφορικός της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών. Είναι διδάσκων (ΣΕΠ) του ΕΑΠ στο Πρόγραμμα Σπουδών «Μεταπτυχιακή Εξειδίκευση στα Πληροφοριακά Συστήματα». Επίσης, έχει διδάξει μαθήματα Αντικειμενοστρεφούς Προγραμματισμού, Πληροφοριακών Συστημάτων και Τεχνολογιών Διαδικτύου από το 2007 σε τμήματα Πληροφορικής των Πανεπιστημίων Πατρών, Πελοποννήσου και Στερεάς Ελλάδας. Tα ερευνητικά του ενδιαφέροντα περιλαμβάνουν τον προγραμματισμό, τις υπηρεσίες διαδικτύου και τη διαλειτουργικότητα (web services), τα πληροφοριακά συστήματα για φορητές συσκευές (smartphones, tablets), τη μηχανική ιστού (web engineering) κ.ά. Έχει περισσότερες από 60 δημοσιεύσεις σε διεθνή περιοδικά και συνέδρια με κρίση.

Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στον προγραμματισμό και την Java Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...19 1.1 Γιατί Java;...22 1.2 Γλώσσες προγραμματισμού...25 1.2.1 Εισαγωγή και γενικά χαρακτηριστικά...25 1.2.2 Από τον πηγαίο κώδικα στη γλώσσα μηχανής...30 1.2.3 Μεταγλωττιστές...33 1.3 Εισαγωγή στην Java...41 1.3.1 Εκδόσεις και εγκατάσταση...41 1.3.2 Η Εικονική Μηχανή της Java...44 1.3.3 Μεταγλωττίζουμε και εκτελούμε ένα πρόγραμμα Java...47 Σύνοψη...56 Λίστα Ελέγχου Γνώσεων...57 Ευρετήριο Όρων...58 Γλωσσάρι...60 Βιβλιογραφία...62 Οδηγός για Περαιτέρω Μελέτη...63 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...64 Απαντήσεις Δραστηριοτήτων...65 Κατάλογος εικόνων...74 Κατάλογος πινάκων...74

8 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 2 Tα βασικά χαρακτηριστικά της γλώσσας Java Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...75 2.1 Οι βιβλιοθήκες της Java...77 2.2 Τα δομικά στοιχεία της γλώσσας Java...82 2.3 Τύποι δεδομένων...87 2.3.1 Απλοί τύποι δεδομένων...87 2.3.2 Ο τύπος δεδομένων String...91 2.4 Εντολές ελέγχου ροής προγράμματος...97 2.5 Εντολές επανάληψης...106 Σύνοψη...113 Λίστα Ελέγχου Γνώσεων...113 Ευρετήριο Όρων...114 Γλωσσάρι...116 Βιβλιογραφία...117 Οδηγός για Περαιτέρω Μελέτη...117 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...118 Απαντήσεις Δραστηριοτήτων...127 Κατάλογος εικόνων...130 Κατάλογος πινάκων...130 ΚΕΦΑΛΑΙΟ 3 Εισαγωγή στις κλάσεις και στα αντικείμενα Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...131 3.1 Από τον κώδικα σπαγγέτι στα αντικείμενα...133 3.2 Οι κλάσεις στην Java...142

ΠΕΡΙΕΧΟΜΕΝΑ 9 3.3 Έλεγχος πρόσβασης: μια πρώτη προσέγγιση...153 3.4 Μέθοδοι...156 3.4.1 Υπερφόρτωση μεθόδου...161 3.4.2 Προσπέλαση και μεταλλαγή...164 3.5 Μεταβλητές και διαχείριση μνήμης από την Java...168 3.6 Κατασκευαστές...176 Σύνοψη...181 Λίστα Ελέγχου Γνώσεων...181 Ευρετήριο Όρων...182 Γλωσσάρι...183 Βιβλιογραφία...184 Οδηγός για Περαιτέρω Μελέτη...184 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...185 Απαντήσεις Δραστηριοτήτων...196 Κατάλογος εικόνων...202 Κατάλογος πινάκων...202 ΚΕΦΑΛΑΙΟ 4 Oι πίνακες και η αναδρομή στην Java Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...203 4.1 Πίνακες μιας διάστασης...206 4.1.1 Παραδείγματα προγραμματισμού με πίνακες...209 4.2 Πολυδιάστατοι πίνακες...219 4.3 Παράμετροι γραμμής εντολών...223 4.4 Τι είναι αναδρομή...226 4.5 Εφαρμογές αναδρομής...230

10 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 4.5.1 Αναδρομική δυαδική αναζήτηση...230 4.5.2 Ο αναδρομικός αλγόριθμος ταξινόμησης Quicksort...232 Σύνοψη...237 Λίστα Ελέγχου Γνώσεων...237 Ευρετήριο Όρων...238 Βιβλιογραφία...239 Οδηγός για Περαιτέρω Μελέτη...239 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...240 Απαντήσεις Δραστηριοτήτων...246 Κατάλογος εικόνων...254 ΚΕΦΑΛΑΙΟ 5 Περισσότερα για τις κλάσεις και τα αντικείμενα Ευ. Σακκόπουλος Εισαγωγικές Παρατηρήσεις...255 5.1 Έλεγχος πρόσβασης σε μέλη και κλάσεις...257 5.2 Εμβέλεια...264 5.3 Χρήση της this...270 5.4 Ενθυλάκωση δεδομένων...274 5.5 Εξαιρέσεις...277 5.5.1 Εισαγωγή στις εξαιρέσεις...277 5.5.2 Βασική διαχείριση εξαίρεσης...280 5.5.3 Προηγμένη διαχείριση εξαιρέσεων...285 5.6 Διαχείριση μνήμης Garbage collection...291 5.6.1 Ο σωρός και η ανάθεση αντικειμένων...291 5.6.2 Πλεονεκτήματα και μειονεκτήματα της συλλογής σκουπιδιών...295

ΠΕΡΙΕΧΟΜΕΝΑ 11 Σύνοψη...296 Λίστα Ελέγχου Γνώσεων...297 Ευρετήριο Όρων...298 Γλωσσάρι...300 Βιβλιογραφία...301 Οδηγός για Περαιτέρω Μελέτη...302 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...303 Απαντήσεις Δραστηριοτήτων...306 Κατάλογος εικόνων...307 ΚΕΦΑΛΑΙΟ 6 Κληρονομικότητα Ευ. Σακκόπουλος Εισαγωγικές Παρατηρήσεις...309 6.1 Επεκτείνοντας υπάρχουσες κλάσεις...311 6.2 Υπερκλάσεις και υποκλάσεις και ιεραρχία κλάσεων...312 6.3 Μέλη και κατασκευαστές υποκλάσεων...320 6.4 Χρήση της super...322 6.5 Υπερκάλυψη και απόκρυψη μεθόδων και μελών...327 6.6 Η δεσμευμένη λέξη final...334 6.7 Η κλάση Object και το αντικείμενο Class...338 Σύνοψη...341 Λίστα Ελέγχου Γνώσεων...341 Ευρετήριο Όρων...342 Γλωσσάρι...343 Βιβλιογραφία...344 Οδηγός για Περαιτέρω Μελέτη...344

12 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...345 Απαντήσεις Δραστηριοτήτων...348 Κατάλογος εικόνων...353 ΚΕΦΑΛΑΙΟ 7 Αυτοαναφορικές δομές δεδομένων και αναδρομή Ευ. Σακκόπουλος Εισαγωγικές Παρατηρήσεις...355 7.1 Αναδρομή (Recursion)...357 7.2 Διασυνδεδεμένες δομές δεδομένων και αναδρομική διασύνδεση...359 7.3 Στοίβες και ουρές...362 7.3.1 Δομή δεδομένων στοίβα...362 7.3.2 Δομή δεδομένων ουρά...367 7.4 Συλλογές: Δυναμικοί πίνακες και διασυνδεδεμένες λίστες...372 7.4.1 Δυναμικός πίνακας και συνδεδεμένη λίστα...372 Σύνοψη...376 Λίστα Ελέγχου Γνώσεων...376 Ευρετήριο Όρων...377 Γλωσσάρι...378 Βιβλιογραφία...379 Οδηγός για Περαιτέρω Μελέτη...379 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...380 Απαντήσεις Δραστηριοτήτων...381 Κατάλογος εικόνων...385

ΠΕΡΙΕΧΟΜΕΝΑ 13 ΚΕΦΑΛΑΙΟ 8 Πολυμορφισμός, αφηρημένες κλάσεις και διεπαφές Ευ. Σακκόπουλος Εισαγωγικές Παρατηρήσεις...387 8.1 Πολυμορφισμός...389 8.2 Λειτουργία και παραδείγματα πολυμορφισμού...390 8.3 Αφηρημένες κλάσεις και μέθοδοι...394 8.4 Διεπαφές...396 8.5 Εμφωλευμένες κλάσεις...399 8.6 Τοπικές και ανώνυμες κλάσεις...402 Σύνοψη...404 Λίστα Ελέγχου Γνώσεων...404 Ευρετήριο Όρων...405 Γλωσσάρι...405 Βιβλιογραφία...406 Οδηγός για Περαιτέρω Μελέτη...406 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...407 Απαντήσεις Δραστηριοτήτων...408 ΚΕΦΑΛΑΙΟ 9 Εισαγωγή στις ροές και στα αρχεία Ευ. Σακκόπουλος Εισαγωγικές Παρατηρήσεις...411 9.1 Ροές εισόδου και εξόδου (Ι/Ο streams)...414 9.1.1 Ροές χαρακτήρων και ροές byte...415 9.1.2 Λειτουργία των ροών...417 9.1.3 Συνδυάζοντας ροές δεδομένων...420

14 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 9.1.4 Ανάγνωση συμβολοσειρών και κειμένου...423 9.1.5 Σειριακός μετασχηματισμός αντικειμένων (Serialization)...425 9.1.6 Ονόματα αρχείων και φάκελοι...429 Σύνοψη...432 Λίστα Ελέγχου Γνώσεων...432 Ευρετήριο Όρων...433 Γλωσσάρι...434 Βιβλιογραφία...435 Οδηγός για Περαιτέρω Μελέτη...435 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...436 Απαντήσεις Δραστηριοτήτων...438 Κατάλογος εικόνων...439 ΠΑΡΑΡΤΗΜΑ Ι Ανάπτυξη εφαρμογών Java με IDE (BlueJ και Eclipse) Ευ. Σακκόπουλος Σκοπός...441 1 Εισαγωγή στο BlueJ...441 1.1 Project...442 1.1.1 Δημιουργία νέου project...442 1.1.2 Άνοιγμα project...442 1.1.3 Περιγραφή λειτουργίας project...442 1.1.4 Αντιγραφή project...442 1.1.5 Μεταγλώττιση project...443 1.2 Κλάσεις...444 1.2.1 Δημιουργία κλάσης...444 1.2.2 Διαγραφή κλάσης...445

ΠΕΡΙΕΧΟΜΕΝΑ 15 1.2.3 Μετονομασία κλάσης...445 1.2.4 Μεταγλώττιση κλάσης...445 1.2.5 Τροποποίηση κλάσης...446 1.3 Διάταξη κλάσεων και συσχετίσεις...447 1.4 Συγγραφή πηγαίου κώδικα...448 1.5 Εκτέλεση...448 1.6 Εκσφαλμάτωση...449 1.6.1 Τοποθέτηση σημείων διακοπής...449 1.6.2 Βηματική εκτέλεση...450 1.6.3 Επιθεώρηση μεταβλητών...451 2 Εισαγωγή στο Eclipse...452 2.1 Project...453 2.1.1 Δημιουργία νέου project...453 2.1.2 Άνοιγμα project...455 2.1.3 Ιδιότητες project...455 2.1.4 Εξαγωγή jar από project...456 2.1.5 Μεταγλώττιση project...457 2.2 Κλάσεις...458 2.2.1 Δημιουργία κλάσης...458 2.2.2 Διαγραφή κλάσης...460 2.2.3 Μετονομασία κλάσης...460 2.2.4 Τροποποίηση κλάσης...460 2.2.5 Μεταγλώττιση κλάσης...461 2.3 Εκτέλεση...462 2.4 Εκσφαλμάτωση...464 2.4.1 Τοποθέτηση σημείων διακοπής...464

16 ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2.4.2 Βηματική εκτέλεση...467 2.4.3 Επιθεώρηση μεταβλητών...467 Κατάλογος εικόνων...468 ΠΑΡΑΡΤΗΜΑ IΙ Χρήση της τεκμηρίωσης Java API Ευ. Σακκόπουλος Σκοπός...469 1 Εισαγωγή...469 2 Τεκμηρίωση Java API εγκατεστημένο σε τοπικό υπολογιστή...470 3 Επισκόπηση τεκμηρίωσης Java API...472 4 Παράδειγμα τεκμηρίωσης της κλάσης ArrayList<E>...475 Κατάλογος εικόνων...478