Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΕΚΑΤΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc.

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

Download "Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΕΚΑΤΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc."

Transcript

1 Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΚΑΤΗ ΕΚ ΟΣΗ Paul Deitel Deitel & Associates, Inc. Harvey Deitel Deitel & Associates, Inc. Απόδοση: Μαίρη Γκλαβά Μαθηματικός, MSc Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής Τηλ.: Αθήνα, 2016

2 Τίτλος Πρωτοτύπου: Java How to Program - Tenth Edition ISBN ISBN Copyright 2015, 2012, 2009 Pearson Education, Inc. Upper Saddle River, New Jersey Αποκλειστικότητα για την Ελληνική Γλώσσα Εκδόσεις: Μόσχος Γκιούρδας Ζωοδόχου Πηγής Τηλ.: Αθήνα, ISBN: Επιμέλεια κειμένων: Μιχαήλ Μεταξάς Desktop Publishing: Κ. Καλαϊτζής, τηλ.: Εκτύπωση: ΜΗΤΡΟΠΟΛΙΣ Γραφικές Τέχνες Α.Ε., τηλ.: Βιβλιοδεσία: ΣΤΑΜΟΥ Γραφικές Τέχνες Εκδόσεις, τηλ.: Αναδημοσίευση του βιβλίου σε οποιαδήποτε μορ φή, ολόκληρου ή μέ ρους, καθώς και των περιεχομένων προ γραμ μά των, δεν επιτρέπεται χωρίς την έγγραφη εξου σιο δό τη ση του εκδότη.

3 Στον Brian Goetz, Στον Αρχιτέκτονα και Καθοδηγητή των Προδιαγραφών της Γλώσσας Java της Oracle για το Project Lambda της Java SE 8: Η καθοδήγησή σου μας βοήθησε να κάνουμε το βιβλίο καλύτερο. Σε ευχαριστούμε που επέμενες να το κάνουμε σωστά. Paul και Harvey Deitel

4 Περιεχόμενα Πριν τον Πρόλογο Πρόλογος Πριν Ξεκινήσετε xxiii xxv xxxix 1 Εισαγωγή στους Υπολογιστές, το Internet και την Java Εισαγωγή Υπολογιστές: Υλικό και Λογισμικό Ο Νόμος του Moore Οργάνωση των Υπολογιστών Ιεραρχία εδομένων Γλώσσες Μηχανής, Γλώσσες Assembly και Γλώσσες Υψηλού Επιπέδου Εισαγωγή στην Τεχνολογία Αντικειμένων Το Αυτοκίνητο ως Αντικείμενο Μέθοδοι και Κλάσεις ημιουργία Στιγμιότυπων Επαναχρησιμοποίηση Μηνύματα και Κλήσεις Μεθόδων Ιδιότητες και Μεταβλητές Στιγμιότυπου Ενθυλάκωση και Απόκρυψη Πληροφοριών Κληρονομικότητα ιασυνδέσεις Αντικειμενοστραφής Ανάλυση και Σχεδίαση H UML (Unified Modeling Language) Λειτουργικά Συστήματα Windows Ένα Ιδιοταγές Κλειστό Λειτουργικό Σύστημα Linux Ένα Ανοικτό Λειτουργικό Σύστημα Android Γλώσσες Προγραμματισμού Java Ένα Τυπικό Περιβάλλον Ανάπτυξης της Java οκιμή μιας Java Εφαρμογής Το Internet και το World Wide Web Το Internet: Ένα ίκτυο ικτύων Το World Wide Web: Κάνοντας Φιλικό το ιαδίκτυο Web Υπηρεσίες και Mashup Ajax Το ιαδίκτυο των Πραγμάτων Τεχνολογίες Λογισμικού Παραμένοντας Ενημερωμένοι με τις Τεχνολογίες Πληροφοριών 30

5 viii ΠΕΡΙΕΧΟΜΕΝΑ 2 Εισαγωγή στην Σύνταξη Java Εφαρμογών: Είσοδος/Έξοδος και Τελεστές Εισαγωγή Το Πρώτο σας Πρόγραμμα στην Java: Εκτύπωση μιας Γραμμής Κειμένου Τροποποίηση του Πρώτου σας Java Προγράμματος Εμφάνιση Κειμένου με την printf Μια Άλλη Εφαρμογή: Πρόσθεση Ακεραίων ηλώσεις import ήλωση της Κλάσης Addition ήλωση και ημιουργία ενός Scanner για Λήψη της Εισόδου του Χρήστη από το Πληκτρολόγιο ήλωση Μεταβλητών για Αποθήκευση Ακέραιων Προτροπή του Χρήστη για Είσοδο Λήψη ενός int ως Είσοδο από τον Χρήστη Προτροπή και Είσοδος ενός εύτερου int Χρήση Μεταβλητών σε έναν Υπολογισμό Εμφάνιση του Αποτελέσματος του Υπολογισμού Τεκμηρίωση του Java API Έννοιες Σχετικές με τη Μνήμη Πράξεις Λήψη Αποφάσεων: Τελεστές Ισότητας και Σχεσιακοί Τελεστές Συμπέρασμα 58 3 Εισαγωγή στις Κλάσεις και τα Αντικείμενα Εισαγωγή Μεταβλητές Στιγμιοτύπων, Μέθοδοι set και Μέθοδοι get Κλάση Account με μια Μεταβλητή Στιγμιοτύπου, μια Μέθοδο set και μια Μέθοδο get Κλάση AccountTest που ημιουργεί και Χρησιμοποιεί ένα Αντικείμενο της Κλάσης Account Μεταγλώττιση και Εκτέλεση μιας Εφαρμογής με Πολλές Κλάσεις UML ιάγραμμα Κλάσης για την Κλάση Account με μια Μεταβλητή Στιγμιοτύπου και Μεθόδους set και get Πρόσθετες Σημειώσεις για την Κλάση AccountTest Μηχανική Λογισμικού με private Μεταβλητές Στιγμιοτύπου και public μεθόδους set και get Πρωταρχικοί Τύποι ως προς τους Τύπους Αναφορών Κλάση Account: Αρχικοποίηση Αντικειμένων με Συναρτήσεις ημιουργίας ήλωση μιας Συνάρτησης ημιουργίας Account για Προσαρμοσμένη Αρχικοποίηση Αντικειμένων Κλάση AccountTest: Αρχικοποίηση Αντικειμένων Account Όταν ημιουργούνται Κλάση Account με Υπόλοιπο - Αριθμοί Κινητής Υποδιαστολής Κλάση Account με μια Μεταβλητή Στιγμιοτύπου Τύπου double Κλάση AccountTest για Χρήση της Κλάσης Account (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Χρήση Παραθύρων ιαλόγου Συμπέρασμα 93 4 Προτάσεις Ελέγχου: Μέρος 1, Τελεστές Εκχώρησης, ++ και Εισαγωγή Αλγόριθμοι Ψευδοκώδικας ομές Ελέγχου Πρόταση if μιας Επιλογής Πρόταση ιπλής Επιλογής if else 106

6 ΠΕΡΙΕΧΟΜΕΝΑ ix 4.7 Κλάση Student: Ένθετες Προτάσεις if else Πρόταση Επανάληψης while Σχηματισμός Αλγορίθμων: Επανάληψη Ελεγχόμενη από Μετρητή Σχηματισμός Αλγορίθμων: Επανάληψη Ελεγχόμενη από Τιμή Σήματος Σχηματισμός Αλγορίθμων: Ένθετες Προτάσεις Ελέγχου Σύνθετοι Τελεστές Εκχώρησης Τελεστές Αύξησης και Μείωσης Πρωταρχικοί Τύποι (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: ημιουργία Απλών Σχεδίων Συμπέρασμα Προτάσεις Ελέγχου: Μέρος 2 Λογικοί Τελεστές Εισαγωγή Τα Βασικά της Ελεγχόμενης από Μετρητή Επανάληψης Πρόταση Επανάληψης for Παραδείγματα Χρήσης της Πρότασης for Πρόταση Επανάληψης do while Πρόταση Πολλαπλών Επιλογών switch Μελέτη Περίπτωσης Κλάσης AutoPolicy: Strings σε Προτάσεις switch Προτάσεις break και continue Λογικοί Τελεστές Σύνοψη ομημένου Προγραμματισμού (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Σχεδίαση Ορθογωνίων και Ελλείψεων Συμπέρασμα Μέθοδοι: Μια Βαθύτερη ιερεύνηση Εισαγωγή Λειτουργικές Μονάδες Προγραμμάτων της Java Μέθοδοι static, Πεδία static και η Κλάση Math ήλωση Μεθόδων με Πολλές Παραμέτρους Σημειώσεις για την ήλωση και τη Χρήση Μεθόδων Στοίβα Κλήσεων Μεθόδων και Πλαίσια Στοίβας Προβιβασμός και Αλλαγή Τύπου Ορισμάτων Πακέτα Java API Μελέτη Περίπτωσης: Ασφαλής Γεννήτρια Τυχαίων Αριθμών Μελέτη Περίπτωσης: Ένα Τυχερό Παιχνίδι Παρουσίαση των Τύπων enum Εμβέλεια των ηλώσεων Υπερφόρτωση Μεθόδων (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Χρώματα και Σχήματα με Γέμισμα Συμπέρασμα Πίνακες και Λίστες Πινάκων Εισαγωγή Πίνακες ήλωση και ημιουργία Πινάκων Παραδείγματα Χρήσης Πινάκων ημιουργία και Αρχικοποίηση ενός Πίνακα Χρήση ενός Πίνακα Αρχικοποίησης Υπολογισμός της Τιμής που Αποθηκεύεται σε έναν Πίνακα Άθροιση των Στοιχείων Ενός Πίνακα Χρήση Ραβδογραμμάτων για την Γραφική Εμφάνιση των εδομένων ενός Πίνακα 251

7 x ΠΕΡΙΕΧΟΜΕΝΑ Χρήση των Στοιχείων Ενός Πίνακα σαν Μετρητές Χρήση Πινάκων για Ανάλυση Αποτελεσμάτων ημοσκόπησης Χειρισμός Εξαιρέσεων: Επεξεργασία της Λανθασμένης Απόκρισης Η Πρόταση try Εκτέλεση του Τμήματος catch Μέθοδος tostring της Παραμέτρου Εξαίρεσης Μελέτη Περίπτωσης: Προσομοίωση Ανακατέματος και Μοιράσματος Τράπουλας Βελτιωμένη Πρόταση for Πέρασμα Πινάκων σε Μεθόδους Πέρασμα με Τιμή ως προς Πέρασμα με Αναφορά Μελέτη Περίπτωσης: Η Κλάση GradeBook με Χρήση ενός Πίνακα για Αποθήκευση Βαθμών Πολυδιάστατοι Πίνακες Μελέτη περίπτωσης: Η Κλάση GradeBook με Χρήση ενός ισδιάστατου Πίνακα Λίστες Ορισμάτων Μεταβλητού Μήκους Χρήση Ορισμάτων Γραμμής Εντολών Η Κλάση Arrays Εισαγωγή σε Συλλογές και στην Κλάση ArrayList (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Σχεδίαση Τόξων Συμπέρασμα Κλάσεις και Αντικείμενα: Μια Βαθύτερη ιερεύνηση Εισαγωγή Μελέτη Περίπτωσης Κλάσης Time Έλεγχος Πρόσβασης σε Μέλη Αναφορά στα Μέλη του Τρέχοντος Αντικειμένου με την Αναφορά this Μελέτη Περίπτωσης Κλάσης Time: Υπερφορτωμένες Συναρτήσεις ημιουργίας Προεπιλεγμένες Συναρτήσεις ημιουργίας και Συναρτήσεις ημιουργίας Χωρίς Ορίσματα Σημειώσεις για τις Μεθόδους Set και Get Σύνθεση Τύποι enum Συλλογή Απορριμμάτων Μέλη Κλάσης static static Import Μεταβλητές Στιγμιοτύπου final Πρόσβαση Επιπέδου Πακέτου Χρήση της BigDecimal για Ακριβείς Νομισματικούς Υπολογισμούς (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Χρήση Αντικειμένων με Γραφικά Συμπέρασμα Αντικειμενοστραφής Προγραμματισμός: Κληρονομικότητα Εισαγωγή Υπερκλάσεις και Υποκλάσεις Μέλη protected Σχέση Ανάμεσα σε Υπερκλάσεις και Υποκλάσεις ημιουργία και Χρήση μιας Κλάσης CommissionEmployee ημιουργία και Χρήση μιας Κλάσης BasePlusCommissionEmployee ημιουργία Ιεραρχίας Κληρονομικότητας CommissionEmployeeBasePlusCommissionEmployee Ιεραρχία Κληρονομικότητας CommissionEmployee-BasePlusCommission- Employee με Χρήση protected Μεταβλητών Στιγμιοτύπου 379

8 ΠΕΡΙΕΧΟΜΕΝΑ xi Ιεραρχία Κληρονομικότητας CommissionEmployee-BasePlusCommission- Employee με Χρήση private Μεταβλητών Στιγμιοτύπου Συναρτήσεις ημιουργίας σε Υποκλάσεις Η Κλάση Object (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Εμφάνιση Κειμένου και Εικόνων με Χρήση Ετικετών Συμπέρασμα Αντικειμενοστραφής Προγραμματισμός: Πολυμορφισμός και ιασυνδέσεις Εισαγωγή Παραδείγματα Πολυμορφισμού Παρουσίαση Πολυμορφικής Συμπεριφοράς Αφαιρετικές Κλάσεις και Μέθοδοι Μελέτη Περίπτωσης: Σύστημα Μισθοδοσίας με Χρήση Πολυμορφισμού Αφαιρετική Υπερκλάση Employee Ειδική Υποκλάση SalariedEmployee Ειδική Υποκλάση HourlyEmployee Ειδική Υποκλάση CommissionEmployee Έμμεση Ειδική Υποκλάση BasePlusCommissionEmployee Πολυμορφική Επεξεργασία, Τελεστής instanceof και Υποβιβασμός Τύπου Επιτρεπόμενες Εκχωρήσεις Μεταξύ Μεταβλητών Υπερκλάσεων και Υποκλάσεων Μέθοδοι και Κλάσεις final Μια Πληρέστερη Επεξήγηση της Κλήσης Μεθόδων από Συναρτήσεις ημιουργίας ημιουργία και Χρήση ιασυνδέσεων Ανάπτυξη μιας Ιεραρχίας Payable ιασύνδεση Payable Κλάση Invoice Τροποποίηση της Κλάσης Employee για Υλοποίηση της ιασύνδεσης Payable Τροποποίηση της Κλάσης SalariedEmployee για Χρήση στην Ιεραρχία Payable Χρήση της διασύνδεσης Payable για Πολυμορφική Επεξεργασία των Invoice και Employee Συνήθεις ιασυνδέσεις του Java API Βελτιώσεις της ιασύνδεσης στη Java SE Μέθοδοι ιασύνδεσης default Μέθοδοι ιασυνδέσεων static Λειτουργικές ιασυνδέσεις (Προαιρετικό) Μελέτη Περίπτωσης Γραφικού Περιβάλλοντος Χρήστη και Γραφικών: Σχεδίαση με Πολυμορφισμό Συμπέρασμα Χειρισμός Εξαιρέσεων: Μια Βαθύτερη Προσέγγιση Εισαγωγή Παράδειγμα: ιαίρεση διά του Μηδενός Χωρίς Χειρισμό Εξαιρέσεων Παράδειγμα: Χειρισμός Εξαιρέσεων ArithmeticException και InputMismatchException Πότε να Χρησιμοποιείτε Χειρισμό Εξαιρέσεων Ιεραρχία Εξαιρέσεων της Java Μπλοκ finally Ξετύλιγμα Στοίβας και Λήψη Πληροφοριών από ένα Αντικείμενο Εξαιρέσεων Αλυσιδωτές Εξαιρέσεις ήλωση Νέων Τύπων Εξαιρέσεων Προϋποθέσεις και Μετά-Υποθέσεις 465

9 xii ΠΕΡΙΕΧΟΜΕΝΑ ιαβεβαιώσεις try με Πόρους: Αυτόματη Αποδέσμευση Πόρων Συμπέρασμα Συστατικά Γραφικού Περιβάλλοντος Χρήστη: Μέρος Εισαγωγή Το Περιβάλλον του Nimbus Απλή Είσοδος / Έξοδος Βασισμένη σε GUI με το JOptionPane Επισκόπηση των Συστατικών Swing Εμφάνιση Κειμένου και Εικόνων σε Ένα Παράθυρο Πεδία Κειμένου και Εισαγωγή στον Χειρισμό Συμβάντων με Ένθετες Κλάσεις Συνήθεις Τύποι Συμβάντων GUI και ιασυνδέσεις Ακρόασης Συμβάντων Πώς Λειτουργεί ο Χειρισμός Συμβάντων JButton Κουμπιά που ιατηρούν την Κατάσταση JCheckBox JRadioButton JcomboBox και Χρήση μιας Ανώνυμης Εσωτερικής Κλάσης για τον Χειρισμό Συμβάντων JList Λίστες Πολλαπλών Επιλογών Χειρισμός Συμβάντων Ποντικιού Κλάσεις Προσαρμογής Υποκλάση JPanel για Σχεδίαση με το Ποντίκι Χειρισμός Συμβάντων Πληκτρολογίου Εισαγωγή στους ιαχειριστές ιατάξεων FlowLayout BorderLayout GridLayout Χρήση Πάνελ για ιαχείριση πιο Περίπλοκων ιατάξεων JTextArea Συμπέρασμα Γραφικά και Java 2D Εισαγωγή Πλαίσια Γραφικών και Αντικείμενα Γραφικών Έλεγχος Χρωμάτων Χειρισμός Γραμματοσειρών Σχεδίαση Γραμμών, Ορθογωνίων και Ελλείψεων Σχεδίαση Τόξων Σχεδίαση Πολυγώνων και Πολύγραμμων Java 2D API Συμπέρασμα Συμβολοσειρές, Χαρακτήρες και Κανονικές Εκφράσεις Εισαγωγή Τα Βασικά των Χαρακτήρων και των Συμβολοσειρών Η Κλάση String Συναρτήσεις ημιουργίας String String Μέθοδοι length, charat και getchars Σύγκριση Συμβολοσειρών Εντοπισμός Χαρακτήρων και Υποσυμβολοσειρών σε Συμβολοσειρές Εξαγωγή Υποσυμβολοσειρών από Συμβολοσειρές Συνένωση Συμβολοσειρών ιάφορες Μέθοδοι String 608

10 ΠΕΡΙΕΧΟΜΕΝΑ xiii String Μέθοδος valueof Κλάση StringBuilder Συναρτήσεις ημιουργίας StringBuilder StringBuilder Μέθοδοι length, capacity, setlength και ensurecapacity StringBuilder Μέθοδοι charat, setcharat, getchars και reverse Μέθοδοι StringBuilder append Μέθοδοι Εισαγωγής και ιαγραφής της StringBuilder Η Κλάση Character Μετατροπή Συμβολοσειρών σε ιακριτικά Κανονικές Εκφράσεις, Κλάση Pattern και Κλάση Matcher Συμπέρασμα Αρχεία, Ροές και Σειριακή Επεξεργασία Αντικειμένων Εισαγωγή Αρχεία και Ροές Χρήση Κλάσεων και ιασυνδέσεων ΝΙΟ για Λήψη Πληροφοριών Αρχείων και Καταλόγων Αρχεία Κειμένου Σειριακής Προσπέλασης ημιουργία Αρχείου Κειμένου Σειριακής Προσπέλασης Ανάγνωση εδομένων από Αρχείο Κειμένου Σειριακής Προσπέλασης Μελέτη Περίπτωσης: Πρόγραμμα Ελέγχου Πιστώσεων Ενημέρωση Αρχείων Σειριακής Προσπέλασης Αντικείμενο Σειριακής Επεξεργασίας ημιουργία ενός Αρχείου Σειριακής Προσπέλασης Χρησιμοποιώντας Σειριοποίηση Αντικειμένων Ανάγνωση και Αποσειριοποίηση εδομένων από Αρχείο Σειριακής Πρόσβασης Άνοιγμα Αρχείων με την JFileChooser (Προαιρετικό) Πρόσθετες Κλάσεις java.io ιασυνδέσεις και Κλάσεις για Είσοδο και Έξοδο Βασισμένη σε byte ιασυνδέσεις και Κλάσεις για Είσοδο και Έξοδο Βασισμένη σε Χαρακτήρες Συμπέρασμα Γενικές Συλλογές Εισαγωγή Επισκόπηση Συλλογών Κλάσεις Τύπου Wrapper Αυτόματη Συσκευασία και Αυτόματη Αποσυσκευασία ιασύνδεση Collection και Κλάση Collections Λίστες ArrayList και Iterator LinkedList Μέθοδοι Συλλογών Μέθοδος sort Μέθοδος shuffle Μέθοδοι reverse, fill, copy, max και min Μέθοδος binarysearch Μέθοδοι addall, frequency και disjoint Η Κλάση Stack του Πακέτου java.util Οι Κλάσεις PriorityQueue και η ιασύνδεση Queue Σύνολα Χάρτες Η Κλάση Properties Συγχρονισμένες Συλλογές Μη Τροποποιήσιμες Συλλογές Αφαιρετικές Υλοποιήσεις 722

11 xiv ΠΕΡΙΕΧΟΜΕΝΑ Συμπέρασμα Τα Lambdas και οι Ροές της Java SE Εισαγωγή Επισκόπηση Τεχνολογιών Λειτουργικού Προγραμματισμού Λειτουργικές ιασυνδέσεις Εκφράσεις Lambda Ροές εδομένων Λειτουργίες IntStream ημιουργία ενός IntStream και Εμφάνιση των Τιμών του με την Τερματική Λειτουργία foreach Τερματικές Λειτουργίες count, min, max, sum και average Τερματική Λειτουργία reduce Ενδιάμεσες Πράξεις: Φιλτράρισμα και Ταξινόμηση των Τιμών της IntStream Ενδιάμεση Πράξη: Απεικόνιση ημιουργώντας Ροές από int με τις IntStream Μεθόδους range και rangeclosed Χειρισμοί Stream<Integer> ημιουργία ενός Stream<Integer> Ταξινομώντας ένα Stream και Συλλέγοντας τα Αποτελέσματα Φιλτράροντας ένα Stream και Αποθηκεύοντας τα Αποτελέσματα για Μετέπειτα Χρήση Φιλτράρισμα και Ταξινόμηση ενός Stream και Συλλογή των Αποτελεσμάτων Ταξινομώντας τα Προηγουμένως Συλλεχθέντα Αποτελέσματα Χειρισμοί Stream<String> Απεικόνιση ενός String σε Κεφαλαία Χρησιμοποιώντας μια Αναφορά Μεθόδου Φιλτράρισμα String και Ταξινόμησή τους σε Αύξουσα Σειρά Ανεξάρτητη από Κεφαλαία-Πεζά Φιλτράρισμα String και Ταξινόμησή τους σε Φθίνουσα Σειρά Ανεξάρτητη από Κεφαλαία-Πεζά Χειρισμοί Stream<Employee> ημιουργία και Εμφάνιση ενός List<Employee> Φιλτράρισμα Eργαζομένων με Μισθούς σε ένα Καθορισμένο Εύρος Ταξινόμηση Εργαζομένων ως προς Πολλά Πεδία Απεικόνιση Εργαζομένων σε Μοναδικά String Επωνύμων Ομαδοποιώντας Εργαζομένους Κατά Τμήμα Μετρώντας τον Αριθμό των Εργαζομένων σε Κάθε Τμήμα Άθροισμα και Μέσος Όρος Μισθών των Εργαζομένων ημιουργία ενός Stream<String> από ένα Αρχείο ημιουργία Ροών με Τυχαίες Τιμές Lambda Χειριστές Συμβάντων Πρόσθετες Σημειώσεις για τις ιασυνδέσεις της Java SE Η Java SE 8 και οι Λειτουργικοί Προγραμματιστικοί Πόροι Συμπέρασμα Αναδρομή Εισαγωγή Έννοιες Αναδρομής Παράδειγμα Χρήσης Αναδρομής: Παραγοντικά Επανα-υλοποίηση της Κλάσης FactorialCalculator Χρησιμοποιώντας την Κλάση BigInteger Παράδειγμα Χρήσης Αναδρομής: Σειρά Fibonacci 783

12 ΠΕΡΙΕΧΟΜΕΝΑ xv 18.6 Αναδρομή και η Στοίβα Κλήσεων Μεθόδων Αναδρομή ως προς Επανάληψη Οι Πύργοι του Ανόι Fractal Το Fractal Καμπύλη του Koch (Προαιρετικό) Μελέτη Περίπτωσης: Το Fractal Lo Feather Αναδρομή με Οπισθοχώρηση Συμπέρασμα Αναζήτηση, Ταξινόμηση και το Μεγάλο Ο Εισαγωγή Γραμμική Αναζήτηση Σύνταξη του Μεγάλου Ο Αλγόριθμοι Ο(Ι) Αλγόριθμοι Ο(n) Αλγόριθμοι Ο(n 2 ) Μεγάλο Ο της Γραμμικής Αναζήτησης υαδική Αναζήτηση Υλοποίηση υαδικής Αναζήτησης Αποτελεσματικότητα υαδικής Αναζήτησης Αλγόριθμοι Ταξινόμησης Ταξινόμηση Επιλογής Υλοποίηση της Ταξινόμηση Επιλογής Αποτελεσματικότητα της Ταξινόμησης Επιλογής Ταξινόμηση Εισαγωγής Υλοποίηση της Ταξινόμηση Εισαγωγής Αποτελεσματικότητα της Ταξινόμησης Εισαγωγής Ταξινόμηση Συγχώνευσης Υλοποίηση της Ταξινόμησης Συγχώνευσης Αποτελεσματικότητα της Ταξινόμησης με Συγχώνευση Σύνοψη του Μεγάλου Ο για τους Αλγορίθμους Αναζήτησης και Ταξινόμησης Αυτού του Κεφαλαίου Συμπέρασμα Γενικές Κλάσεις και Μέθοδοι Εισαγωγή Κίνητρα για Χρήση Γενικών Μεθόδων Γενικές Μέθοδοι: Υλοποίηση και Μετάφραση κατά την Μεταγλώττιση Πρόσθετα Θέματα Μετάφρασης Κατά την Μεταγλώττιση: Μέθοδοι που Χρησιμοποιούν μια Παράμετρο Τύπου ως Τύπο Επιστροφής Υπερφόρτωση Γενικών Μεθόδων Γενικές Κλάσεις Ακατέργαστοι Τύποι Χαρακτήρες-Μπαλαντέρ σε Μεθόδους που έχονται Παραμέτρους Τύπων Συμπέρασμα Προσαρμοσμένες Γενικές ομές εδομένων Εισαγωγή Αυτοαναφερόμενες Κλάσεις υναμική έσμευση Μνήμης Συνδεδεμένες Λίστες Απλές Συνδεδεμένες Λίστες Υλοποίηση μιας Γενικής Κλάσης List 873

13 xvi ΠΕΡΙΕΧΟΜΕΝΑ Γενικές Κλάσεις ListNode και List Η Κλάση ListTest Η List Μέθοδος insertatfront Η List Μέθοδος insertatback Η List Μέθοδος removefromfront Η List Μέθοδος removefromback Η List Μέθοδος print ημιουργία των ικών σας Πακέτων Στοίβες Ουρές ένδρα Συμπέρασμα Συστατικά GUI: Μέρος Εισαγωγή JSlider Κατανόηση των Παραθύρων της Java Χρήση Μενού με Πλαίσια JPopupMenu Προσαρμόσιμη Εμφάνιση και Αίσθηση JDesktopPane και JInternalFrame JTabbedPane ιαχειριστής ιάταξης BoxLayout ιαχειριστής ιάταξης GridBagLayout Συμπέρασμα Ταυτόχρονη Εκτέλεση Εισαγωγή Καταστάσεις Νημάτων και Ο Κύκλος Ζωής Ενός Νήματος Καταστάσεις New και Runnable Κατάσταση Waiting Κατάσταση Timed Waiting Κατάσταση Blocked Κατάσταση Terminated Ο Τρόπος που Βλέπει το Λειτουργικό Σύστημα την Κατάσταση Runnable Προτεραιότητες Νημάτων και Χρονοπρογραμματισμός Νημάτων Επ' Αόριστον Αναβολή και οι Αδιέξοδες Καταστάσεις ημιουργία και Εκτέλεση Νημάτων με το Πλαίσιο Εργασίας Executor Συγχρονισμός Νημάτων Αμετάβλητα εδομένα Λειτουργία Παρακολούθησης Μη Συγχρονισμένη Κοινή Χρήση Μεταβλητών εδομένων Συγχρονισμένη Κοινή Χρήση Μεταβλητών εδομένων Κάνοντας τις Λειτουργίες Ατομικές Σχέση Παραγωγού / Καταναλωτή Χωρίς Συγχρονισμό Σχέση Παραγωγού / Καταναλωτή: ArrayBlockingQueue (Για Προχωρημένους) Σχέση Παραγωγού / Καταναλωτή με synchronized, wait, notify και notifyall (Για Προχωρημένους) Σχέση Παραγωγού / Καταναλωτή: Buffer με Όρια (Για Προχωρημένους) Σχέση Παραγωγού / Καταναλωτή: Οι ιασυνδέσεις Lock και Condition Συγχρονισμένες Συλλογές Πολυνηματισμός με GUI: SwingWorker Εκτέλεση Υπολογισμών σε ένα Νήμα Worker: Αριθμοί Fibonacci 1012

14 ΠΕΡΙΕΧΟΜΕΝΑ xvii Επεξεργασία Ενδιάμεσων Αποτελεσμάτων: Το Κόσκινο του Ερατοσθένους Χρονισμοί sort/parallelsort με το Java SE 8 API Date/Time Java SE 8: Σειριακές ως προς Παράλληλες Ροές (Για Προχωρημένους) ιασυνδέσεις Callable και Future (Για Προχωρημένους) Πλαίσιο Εργασίας Fork/Join Συμπέρασμα Προσπέλαση Βάσεων εδομένων με το JDBC Εισαγωγή Σχεσιακές Βάσεις εδομένων Η Βάση εδομένων books SQL Βασικό Ερώτημα SELECT Φράση WHERE Φράση ORDER BY Συγχώνευση εδομένων από Πολλούς Πίνακες: INNER JOIN Πρόταση INSERT Πρόταση UPDATE Πρόταση DELETE ιαμόρφωση μιας Java DB Βάσης εδομένων ημιουργία Βάσεων εδομένων του Κεφαλαίου στα Windows ημιουργία των Βάσεων εδομένων του Κεφαλαίου στο Mac OS X ημιουργία των Βάσεων εδομένων του Κεφαλαίου στο Linux Χειρισμός Βάσεων εδομένων με το JDBC Σύνδεση και Υποβολή Ερωτημάτων σε μία Βάση εδομένων Υποβολή Ερωτημάτων στην Βάση εδομένων books ιασύνδεση RowSet Προτάσεις PreparedStatement Αποθηκευμένες ιαδικασίες Επεξεργασία Συναλλαγών Συμπέρασμα Το Περιβάλλον του JavaFX Εισαγωγή Το JavaFX Scene Builder και το NetBeans IDE ομή του Παραθύρου των Εφαρμογών του JavaFX Εφαρμογή Welcome Εμφάνιση Κειμένου και μιας Εικόνας ημιουργώντας το Έργο της Εφαρμογής Παράθυρο Έργων του NetBeans Βλέποντας τα Περιεχόμενα του Έργου Προσθέτοντας μια Εικόνα στο Έργο Ανοίγοντας το JavaFX Scene Builder από το NetBeans Αλλαγή σε ένα VBox Layout Container ιαμορφώνοντας το Κοντέινερ ιάταξης VBox Προσθήκη και ιαμόρφωση ενός Label Προσθήκη και ιαμόρφωση ενός ImageView Εκτέλεση της Εφαρμογής Welcome Εφαρμογή Tip Calculator Εισαγωγή στο Χειρισμό Συμβάντων οκιμή της Εφαρμογής Tip Calculator Επισκόπηση των Τεχνολογιών ημιουργία του GUI της Εφαρμογής Κλάση TipCalculator Κλάση TipCalculatorController Λειτουργίες που Καλύπτονται στα Κεφάλαια για το JavaFX Συμπέρασμα 1134

15 xviii ΠΕΡΙΕΧΟΜΕΝΑ 26 JavaFX GUI: Μέρος Εισαγωγή Εγκατάσταση των JDK 8, NetBeans 8 και JavaFX Scene Builder ιάταξη Κόμβων σε ένα Γράφημα Σκηνής Εφαρμογή Painter: RadioButton, Συμβάντα του Ποντικιού και Σχήματα Επισκόπηση Τεχνολογιών ημιουργία του Έργου ημιουργία του GUI Υποκλάση Painter της Application Κλάση PainterController Εφαρμογή Color Chooser: Συνδέσεις Ιδιοτήτων και Ακροατές Ιδιοτήτων Επισκόπηση Τεχνολογιών ημιουργία του Έργου ημιουργία του GUI Υποκλάση ColorChooser της Application Κλάση ColorChooserController Εφαρμογή Cover Viewer: GUI Καθοδηγούμενα από εδομένα με Συλλογές JavaFX Επισκόπηση Τεχνολογιών ημιουργία του Έργου Προσθήκη Εικόνων στο Έργο ημιουργία του GUI Υποκλάση CoverViewer της Application Κλάση CoverViewerController Εφαρμογή Cover Viewer: Προσαρμογή Κελιών της ListView Επισκόπηση Τεχνολογιών Αντιγραφή του Έργου CoverViewer Προσαρμοσμένη Κλάση Factory Κελιών ImageTextCell Κλάση CoverViewerController Συμπέρασμα ικτύωση Εισαγωγή Χειρισμός URL Ανάγνωση Αρχείου σε Έναν Web ιακομιστή ημιουργία ενός Απλού ιακομιστή Χρησιμοποιώντας Υποδοχές Ροής ημιουργία ενός Απλού Πελάτη Χρησιμοποιώντας Υποδοχές Ροής Αλληλεπίδραση Πελάτη/ ιακομιστή με Συνδέσεις Υποδοχής Ροών Datagram: Αλληλεπίδραση Πελάτη/ ιακομιστή Χωρίς Συνδέσεις Τρίλιζα Πελάτη/ ιακομιστή με Χρήση ενός Πολυνηματικού ιακομιστή [Προσφορά στο Web] Μελέτη Περίπτωσης: DeitelMessenger Συμπέρασμα Java Persistence API (JPA) Εισαγωγή Επισκόπηση των Τεχνολογιών JPA ημιουργούμενες Κλάσεις Οντοτήτων Σχέσεις Μεταξύ Πινάκων Στις Κλάσεις Οντοτήτων Το Πακέτο javax.persistence Υποβολή Ερωτημάτων σε μια Βάση εδομένων με JPA ημιουργία της Java DB Βάσης εδομένων Συμπλήρωση της Βάσης εδομένων books με εδομένα ημιουργία του Java Έργου Προσθήκη των Βιβλιοθηκών JPA και Java DB ημιουργία της Μονάδας Persistence για τη Βάση εδομένων books 1229

16 ΠΕΡΙΕΧΟΜΕΝΑ xix Υποβολή Ερωτημάτων στον Πίνακα Authors JPA Λειτουργίες για την Αυτοδημιουργούμενη Κλάση Authors Ερωτήματα με Όνομα και Πρόσβαση εδομένων από Πολλαπλούς Πίνακες Χρήση ενός Ερωτήματος με Όνομα για Λήψη μιας Λίστας από Συγγραφείς και Εμφάνιση των Συγγραφέων με τα ISBN τους Χρήση ενός Ερωτήματος με Όνομα για Λήψη μιας Λίστας από Τίτλους και Εμφάνιση Κάθε Τίτλου με τον Αντίστοιχο Συγγραφέα Βιβλίο ιευθύνσεων: Χρήση του JPA και Συναλλαγών για Τροποποίηση μιας Βάσης εδομένων Επεξεργασία Συναλλαγών ημιουργία της Βάσης εδομένων AddressBook και της Μονάδας persistence Κλάση Οντοτήτων Addresses Κλάση AddressBook Άλλες Λειτουργίες του JPA Web Πόροι Συμπέρασμα JavaServer Faces και Web Εφαρμογές: Μέρος Εισαγωγή Συναλλαγές HyperText Transfer Protocol (HTTP) Πολυεπίπεδη Αρχιτεκτονική Εφαρμογών Η Πρώτη JSF Web Εφαρμογή σας Το Προκαθορισμένο index.html Έγγραφο: Εισαγωγή στα Facelet Εξέταση της Κλάσης WebTimeBean ημιουργία της WebTime JSF Web Εφαρμογής στο NetBeans Αρχιτεκτονική Μοντέλου-Προβολής-Ελεγκτή των Εφαρμογών JSF Συνηθισμένα JSF Συστατικά Επικύρωση με Χρήση Τυπικών JSF Συστατικών Validator Παρακολούθηση Συνόδου Cookie Παρακολούθηση Συνόδων με τα Συμπέρασμα JavaServer Faces και Web Εφαρμογές: Μέρος Εισαγωγή Πρόσβαση σε Βάσεις εδομένων από Web Εφαρμογές ιαμόρφωση της Βάσης εδομένων 1292 Κλάση AddressBean Facelets Σελίδα index.xhtml Facelets Σελίδα addentry.xhtml Ajax Προσθήκη Λειτουργικότητας Ajax στην Εφαρμογή Επικύρωσης Συμπέρασμα Web Υπηρεσίες Βασισμένες σε REST Εισαγωγή Τα Βασικά Web των Υπηρεσιών Simple Object Access Protocol (SOAP) Representational State Transfer (REST) JavaScript Object Notation (JSON) ημοσίευση και Κατανάλωση Web Υπηρεσιών Βασισμένες στο SOAP ημιουργία μιας Web Εφαρμογής και Προσθήκη μιας Κλάσης Web Υπηρεσίας στο NetBeans 1316

17 xx ΠΕΡΙΕΧΟΜΕΝΑ Ορισμός της Web υπηρεσίας WelcomeSOAP στο NetBeans ημοσίευση της Web υπηρεσίας WelcomeSOAP από το NetBeans οκιμή της Web υπηρεσίας WelcomeSOAP με την Ιστοσελίδα Tester του GlassFish Application Server Περιγραφή μιας Web Υπηρεσίας με την Web Service Description Language (WSDL) ημιουργία ενός Πελάτη για Κατανάλωση της Web Υπηρεσίας WelcomeSOAP Κατανάλωση της Web υπηρεσίας WelcomeSOAP ημοσίευση και Κατανάλωση μιας XML Web Υπηρεσίας Βασισμένης σε REST ημιουργία XML Web Υπηρεσίας Βασισμένης σε REST Κατανάλωση μιας XML Web Υπηρεσίας Βασισμένης σε REST ημοσίευση και Κατανάλωση JSON Web Υπηρεσιών Βασισμένων σε REST ημιουργία μιας JSON Web Υπηρεσίας Βασισμένης σε REST Κατανάλωση μιας JSON Web Υπηρεσίας Βασισμένης σε REST Παρακολούθηση Συνόδων σε μια SOAP Web Υπηρεσία ημιουργία μιας Web Υπηρεσίας Blackjack Κατανάλωση της Web Υπηρεσίας Blackjack Κατανάλωση μιας SOAP Web Υπηρεσίας με Χρήση Βάσης εδομένων ημιουργία της Βάση εδομένων Reservation ημιουργία μιας Web Εφαρμογής για Αλληλεπίδραση με την Υπηρεσία Reservation Γεννήτρια Εξισώσεων: Επιστροφή Τύπων Ορισμένων από το Χρήστη ημιουργία της Web Υπηρεσίας EquationGeneratorXML Κατανάλωση της Web Υπηρεσίας EquationGeneratorXML ημιουργία της Web Υπηρεσίας EquationGeneratorJSON Κατανάλωση της Web Υπηρεσίας EquationGeneratorJSON Συμπέρασμα Μελέτη Περίπτωσης ΑΤΜ, Μέρος 1: Αντικειμενοστραφής Σχεδίαση με την UML Εισαγωγή στη Μελέτη Περίπτωσης Εξέταση του Εγγράφου Προδιαγραφών Προσδιορισμός των Κλάσεων σε ένα Έγγραφο Προδιαγραφών Προσδιορισμός Ιδιοτήτων Κλάσεων Προσδιορισμός Καταστάσεων και ραστηριοτήτων Αντικειμένων Προσδιορισμός Λειτουργιών Κλάσεων Υποδεικνύοντας την Συνεργασία Μεταξύ Αντικειμένων Συμπέρασμα Μελέτη Περίπτωσης ΑΤΜ, Μέρος 2: Υλοποίηση μιας Αντικειμενοστραφούς Σχεδίασης Εισαγωγή Ξεκινώντας τον Προγραμματισμό των Κλάσεων του Συστήματος ATM Ενσωμάτωση Κληρονομικότητας και Πολυμορφισμού στο Σύστημα ATM Υλοποίηση της Μελέτης Περίπτωσης του ΑΤΜ Κλάση ATM Κλάση Screen Κλάση Keypad Κλάση CashDispenser Κλάση DepositSlot Κλάση Account Κλάση BankDatabase Κλάση Transaction Κλάση BalanceInquiry Κλάση Withdrawal 1449

18 ΠΕΡΙΕΧΟΜΕΝΑ xxi Κλάση Deposit Κλάση ATMCaseStudy Συμπέρασμα 1456 A ιάγραμμα Προτεραιότητας Τελεστών 1459 B Σύνολο Χαρακτήρων ASCII 1461 Γ Λέξεις-Κλειδιά και εσμευμένες Λέξεις 1462 Πρωταρχικοί Τύποι 1463 E Χρήση του Debugger 1464 Ε.1 Εισαγωγή 1465 Ε.2 Σημεία ιακοπής και οι Εντολές run, stop, cont και print 1465 Ε.3 Οι Εντολές print και set 1469 Ε.4 Έλεγχος της Εκτέλεσης Χρησιμοποιώντας τις Εντολές step, step up και next 1471 Ε.5 Η Εντολή watch 1474 Ε.6 Η Εντολή clear 1476 Ε.7 Συμπέρασμα 1478 ΣΤ Χρήση της Τεκμηρίωσης του Java API 1480 ΣΤ.1 Εισαγωγή 1480 ΣΤ.2 Πλοήγηση στο Java API 1481 Ζ ημιουργία Τεκμηρίωσης με το javadoc 1489 Ζ.1 Εισαγωγή 1489 Ζ.2 Σχόλια Τεκμηρίωσης 1489 Ζ.3 Τεκμηρίωση του Java Πηγαίου Κώδικα 1490 Ζ.4 javadoc 1497 Ζ.5 Αρχεία που Παράγονται από το javadoc 1498 Η Unicode 1502 Η.1 Εισαγωγή 1502 Η.2 Unicode Μορφές Μετασχηματισμού 1503 Η.3 Χαρακτήρες και ιακοσμητικά Εικονίδια 1504 Η.4 Πλεονεκτήματα/Μειονεκτήματα της Unicode 1505 Η.5 Χρήση της Unicode 1505 Η.6 Εύρος Χαρακτήρων 1507 Θ Μορφοποιημένη Έξοδος 1509 Θ.1 Εισαγωγή 1510 Θ.2 Ροές 1510 Θ.3 Μορφοποίηση Εξόδου με την printf 1510 Θ.4 Εμφάνιση Ακεραίων 1511 Θ.5 Εμφάνιση Αριθμών Κινητής Υποδιαστολής 1512 Θ.6 Εμφάνιση Συμβολοσειρών και Χαρακτήρων 1514 Θ.7 Εμφάνιση Ημερομηνιών και Ωρών 1515 Θ.8 Άλλοι Χαρακτήρες Μετατροπής 1517 Θ.9 Εμφάνιση με Πλάτη Πεδίων και Ακρίβεια 1519 Θ.10 Χρήση Σημαιών στην Συμβολοσειρά Μορφοποίησης της printf 1521 Θ.11 Εμφάνιση με είκτες Ορισμάτων 1525

19 xxii ΠΕΡΙΕΧΟΜΕΝΑ Θ.12 Εμφάνιση Κυριολεκτικών και Ακολουθιών ιαφυγής 1525 Θ.13 Μορφοποίηση Εξόδου με την Κλάση Formatter 1526 Θ.14 Συμπέρασμα 1527 Ι Αριθμητικά Συστήματα 1528 Ι.1 Εισαγωγή 1529 Ι.2 Συντόμευση υαδικών Αριθμών σε Οκταδικούς και εκαεξαδικούς Αριθμούς 1532 Ι.3 Μετατροπή Οκταδικών και εκαεξαδικών Αριθμών σε υαδικούς Αριθμούς 1533 Ι.4 Μετατροπή από υαδικούς, Οκταδικούς, εκαεξαδικούς σε εκαδικούς 1533 Ι.5 Μετατροπή από εκαδικούς σε υαδικούς, Οκταδικούς ή εκαεξαδικούς 1534 Ι.6 Αρνητικοί υαδικοί Αριθμοί: Σύνταξη Συμπληρωματική του ύο 1536 ΙΑ Χειρισμός Bit 1538 ΙΑ.1 Εισαγωγή 1538 ΙΑ.2 Χειρισμός Bit και Τελεστές Επιπέδου Bit 1538 ΙΑ.3 Κλάση BitSet 1548 ΙΒ Προτάσεις break και continue 1552 ΙΒ.1 Εισαγωγή 1552 ΙΒ.2 Πρόταση με Ετικέτα break 1552 ΙΒ.3 Πρόταση με Ετικέτα continue 1553 ΙΓ UML 2: Πρόσθετοι Τύποι ιαγραμμάτων 1555 ΙΓ.1 Εισαγωγή 1555 ΙΓ.2 Πρόσθετοι Τύποι ιαγραμμάτων 1555 Ι Μοτίβα Σχεδίασης 1557 Ι.1 Εισαγωγή 1557 Ι.2 ημιουργικά, ομικά και Συμπεριφοριστικά Μοτίβα Σχεδίασης 1558 Ι.2.1 ημιουργικά Μοτίβα Σχεδίασης 1559 Ι.2.2 ομικά Μοτίβα Σχεδίασης 1561 Ι.2.3 Συμπεριφοριστικά Μοτίβα Σχεδίασης 1562 Ι.2.4 Συμπέρασμα 1563 Ι.3 Μοτίβα Σχεδίασης σε Πακέτα java.awt και javax.swing 1563 Ι.3.1 ημιουργικά Μοτίβα Σχεδίασης 1563 Ι.3.2 ομικά Μοτίβα Σχεδίασης 1564 Ι.3.3 Συμπεριφοριστικά Μοτίβα Σχεδίασης 1566 Ι.3.4 Συμπέρασμα 1570 Ι.4 Μοτίβα Σχεδίασης Συγχρονισμού 1570 Ι.5 Μοτίβα Σχεδίασης που Χρησιμοποιούνται στα Πακέτα java.io και java.net 1571 Ι.5.1 ημιουργικά Μοτίβα Σχεδίασης 1571 Ι.5.2 ομικά Μοτίβα Σχεδίασης 1571 Ι.5.3 Αρχιτεκτονικά Μοτίβα Σχεδίασης 1573 Ι.5.4 Συμπέρασμα 1575 Ι.6 Μοτίβα Σχεδίασης που Χρησιμοποιούνται στο Πακέτο java.util 1575 Ι.6.1 ημιουργικά Μοτίβα Σχεδίασης 1575 Ι.6.2 Συμπεριφοριστικά Μοτίβα Σχεδίασης 1575 Ι.7 Συμπέρασμα 1576 Ευρετήριο 1577

20 Πριν τον Πρόλογο Είχα μαγευτεί με την Java πριν την έκδοση 1.0 το 1995 και στη συνέχεια έγινα προγραμματιστής της Java, συγγραφέας, ομιλητής, εισηγητής και Oracle Java Technology Ambassador. Σ' αυτό το ταξίδι, ήταν μεγάλη μου τιμή να θεωρώ συνάδελφό μου τον Paul Deitel και να συστήνω συχνά τα βιβλία του. Στις πολλές εκδόσεις του, αυτό το βιβλίο έχει αποδειχθεί σπουδαίο βοήθημα για Πανεπιστημιακά και επαγγελματικά μαθήματα που εγώ, όπως και άλλοι, έχουμε αναπτύξει, προκειμένου να διδάξουμε την Java γλώσσα προγραμματισμού. Ένα ποιοτικό χαρακτηριστικό που καθιστά αυτό το βιβλίο ένα σπουδαίο βοήθημα είναι η εκτενής και πλήρης κάλυψη των εννοιών της Java, όπως και αυτών που παρουσιάσθηκαν πρόσφατα στην Java SE 8. Ένα άλλο χρήσιμο ποιοτικό χαρακτηριστικό είναι η αντιμετώπιση των εννοιών και πρακτικών που είναι απαραίτητες για την αποτελεσματική ανάπτυξη λογισμικού. Καθώς είμαι θαυμαστής αυτού του βιβλίου εδώ και πολύ καιρό, θα ήθελα να αναφέρω μερικές από τις λειτουργίες αυτής της δέκατης έκδοσης, για την οποία είμαι ενθουσιασμένος. Αυτές είναι: Ένα φιλόδοξο νέο κεφάλαιο σχετικά με τις lambda εκφράσεις και ροές της Java. Αυτό το κεφάλαιο αρχίζει με μια εισαγωγή στο λειτουργικό προγραμματισμό, παρουσιάζοντας τις lambda εκφράσεις της Java και πώς να χρησιμοποιείτε τις ροές, ώστε να εκτελείτε εργασίες λειτουργικού προγραμματισμού σε συλλογές. Αν και η συγχρονικότητα είχε αναφερθεί ακόμα και στην πρώτη έκδοση του βιβλίου, η σημαντικότητά της όλο και αυξάνεται εξαιτίας των πολυπύρηνων αρχιτεκτονικών. Υπάρχουν παραδείγματα χρονισμού, με χρήση των νέων κλάσεων Date/Time API που παρουσιάσθηκαν στο Java SE 8, στο κεφάλαιο της συγχρονικότητας που δείχνουν τις βελτιώσεις στην απόδοση με την πολυπύρηνη αρχιτεκτονική ως προς την μονοπύρηνη. Το JavaFX είναι η τεχνολογία GUI/γραφικών/πολυμέσων της Java που προχωρά μπροστά, έτσι είναι ωραίο να βλέπουμε τρία κεφάλαια αφιερωμένα στο JavaFX με το παιδαγωγικό στυλ "ζωντανού κώδικα" της Deitel. Σας παρακαλώ, ενωθείτε μαζί μου για να συγχαρούμε τους Paul και Harvey Deitel για την τελευταία έκδοση μιας εξαιρετικής πηγής για τους σπουδαστές της Πληροφορικής όπως και για τους προγραμματιστές! James L. Weaver Java Technology Ambassador Oracle Corporation

21

22 Πρόλογος Το κύριο πλεονέκτημα μιας γλώσσας είναι η καθαρότητα... Γαληνός Καλωσορίσατε στον προγραμματισμό της γλώσσας Java και στο βιβλίο αυτό! Αυτό το βιβλίο παρουσιάζει τεχνολογίες αιχμής σχετικές με τους υπολογιστές σε σπουδαστές, εκπαιδευτικούς και προγραμματιστές. Είναι κατάλληλο για εισαγωγικά ακαδημαϊκά και επαγγελματικά μαθήματα με βάση συστάσεις για το πρόγραμμα σπουδών ACM και IEEE και για την προετοιμασία διαγωνισμών AP Computer Science. Εάν δεν το έχετε κάνει ακόμα, παρακαλώ διαβάστε το οπισθόφυλλο και το εσωτερικό οπισθόφυλλο, γιατί παρουσιάζουν την ουσία του βιβλίου. Σ' αυτό τον Πρόλογο, παρέχουμε περισσότερες λεπτομέρειες. Εστιάζουμε στις καλύτερες πρακτικές της μηχανικής λογισμικού. Την καρδιά του βιβλίου διέπει η υπογραφή Deitel "προσέγγιση ζωντανού κώδικα" (live-code approach), που αντί να χρησιμοποιούμε τμήματα κώδικα, παρουσιάζουμε τις περισσότερες έννοιες στα πλαίσια πλήρως λειτουργικών προγραμμάτων που εκτελούνται σε πρόσφατες εκδόσεις των Windows, OS X και Linux. Κάθε ολοκληρωμένο παράδειγμα κώδικα ακολουθείται μετά απ' τα αποτελέσματα εκτελέσεων. Επικοινωνώντας με τους Συγγραφείς Καθώς διαβάζετε αυτό το βιβλίο, αν έχετε ερωτήσεις, στείλτε ένα στην διεύθυνση και θα σας απαντήσουμε γρήγορα. Για ενημερώσεις για αυτό το βιβλίο, επισκεφθείτε την διεύθυνση Εγγραφείτε στο ηλεκτρονικό περιοδικό μας Deitel Buzz Online στην διεύθυνση και μπορείτε να συμμετέχετε σε μέσα κοινωνικής δικτύωσης της Deitel μέσω Facebook (http://www.deitel.com/deitelfan) Twitter Google+ (http://google.com/+deitelfan) YouTube (http://youtube.com/deiteltv) LinkedIn (http://linkedin.com/company/deitel-&-associates) Πηγαίος Κώδικας και Βίντεο-Σημειώσεις Όλος ο πηγαίος κώδικας είναι διαθέσιμος στην διεύθυνση και στο συνοδευτικό δικτυακό τόπο του βιβλίου (που επίσης περιέχει εκτενείς βίντεο-σημειώσεις):

23 xxvi ΠΡΟΛΟΓΟΣ Αρθρωτή Οργάνωση Αυτό το βιβλίο είναι κατάλληλο για μαθήματα προγράμματα προγραμματισμού διαφόρων επιπέδων, κυρίως για μαθήματα πρώτου και δευτέρου επιπέδου και εισαγωγικές σειρές μαθημάτων σχετικών ειδικοτήτων. Η αρθρωτή οργάνωση του βιβλίου βοηθά τους εισηγητές να προγραμματίσουν την ύλη τους: Εισαγωγή Κεφάλαιο 1 Εισαγωγή στους Υπολογιστές, το Internet και την Java Κεφάλαιο 2 Εισαγωγή στην Σύνταξη Java Εφαρμογών: Είσοδος/Έξοδος και Τελεστές Κεφάλαιο 3 Εισαγωγή στις Κλάσεις και τα Αντικείμενα Πρόσθετες Λειτουργίες Προγραμματισμού Κεφάλαιο 4 Προτάσεις Ελέγχου: Μέρος 1, Τελεστές Εκχώρησης, ++ και Κεφάλαιο 5 Προτάσεις Ελέγχου: Μέρος 2 Λογικοί Τελεστές Κεφάλαιο 6 Μέθοδοι: Μια Βαθύτερη ιερεύνηση Κεφάλαιο 7 Πίνακες και Λίστες Πινάκων Κεφάλαιο 14 Συμβολοσειρές, Χαρακτήρες και Κανονικές Εκφράσεις Κεφάλαιο 15 Αρχεία, Ροές και Σειριακή Επεξεργασία Αντικειμένων Αντικειμενοστραφής Προγραμματισμός και Αντικειμενοστραφής Σχεδίαση Κεφάλαιο 8 Κλάσεις και Αντικείμενα: Μια Βαθύτερη ιερεύνηση Κεφάλαιο 9 Αντικειμενοστραφής Προγραμματισμός: Κληρονομικότητα Κεφάλαιο 10 Αντικειμενοστραφής Προγραμματισμός: Πολυμορφισμός και ιασυνδέσεις Κεφάλαιο 11 Χειρισμός Εξαιρέσεων: Μια Βαθύτερη Προσέγγιση Κεφάλαιο 32 Μελέτη Περίπτωσης ΑΤΜ, Μέρος 1: Αντικειμενοστραφής Σχεδίαση με την UML9 Κεφάλαιο 33 Μελέτη Περίπτωσης ΑΤΜ, Μέρος 2: Υλοποίηση μιας Αντικειμενοστραφούς Σχεδίασης Swing Γραφικά Περιβάλλοντα Χρήστη και Java 2 Γραφικά Κεφάλαιο 12 Συστατικά Γραφικού Περιβάλλοντος Χρήστη: Μέρος 1 Κεφάλαιο 13 Γραφικά και Java 2D Κεφάλαιο 22 Συστατικά GUI: Μέρος 2 ομές εδομένων, Συλλογές, Lambda και Ροές Κεφάλαιο 16 Γενικές Συλλογές Κεφάλαιο 17 Τα Lambdas και οι Ροές της Java SE 8 Κεφάλαιο 18 Αναδρομή Κεφάλαιο 19 Αναζήτηση, Ταξινόμηση και το Μεγάλο Ο Κεφάλαιο 20 Γενικές Κλάσεις και Μέθοδοι Κεφάλαιο 21 Προσαρμοσμένες Γενικές ομές εδομένων

24 ΠΡΟΛΟΓΟΣ xxvii Συχγρονικότητα, ικτύωση Κεφάλαιο 23 Ταυτόχρονη Εκτέλεση Κεφάλαιο 27 ικτύωση JavaFX Γραφικά Περιβάλλοντα Χρήστη, Γραφικά και Πολυμέσα Κεφάλαιο 25 Το Περιβάλλον του JavaFX7 Κεφάλαιο 26 JavaFX GUI: Μέρος 2 Ανάπτυξη με Βάσεις εδομένων και το Web Κεφάλαιο 24 Προσπέλαση Βάσεων εδομένων με το JDBC Κεφάλαιο 28 Java Persistence API (JPA) Κεφάλαιο 29 JavaServer Faces και Web Εφαρμογές: Μέρος 1 Κεφάλαιο 30 JavaServer Faces και Web Εφαρμογές: Μέρος 2 Κεφάλαιο 31 Web Υπηρεσίες Βασισμένες σε REST Νέες και Ενημερωμένες Λειτουργίες Εδώ είναι οι αλλαγές που έχουμε κάνει γι' αυτό το βιβλίο: Τυπική έκδοση της Java: Java SE 7 και το Νέο Java SE 8. Προκειμένου να ικανοποιήσουμε τις ανάγκες του κοινού μας, σχεδιάσαμε το βιβλίο για Πανεπιστημιακά και επαγγελματικά μαθήματα βασισμένα στο Java SE 7, το Java SE 8 ή μια μείξη τους. Οι λειτουργίες της Java SE 8 καλύπτονται σε προαιρετικές, εύκολες να συμπεριληφθούν ή να παραλειφθούν ενότητες. Οι νέες δυνατότητες της Java SE 8 μπορούν να βελτιώσουν εντυπωσιακά τη διαδικασία προγραμματισμού. Η Εικόνα 1 αναφέρει μερικές απ' τις νέες λειτουργίες της Java SE 8 που καλύπτουμε. Λειτουργίες της Java SE 8fe Lambda εκφράσεις Βελτιώσεις στην συνεπαγωγή τύπων Παράλληλη ταξινόμηση πινάκων Μαζικές λειτουργίες με δεδομένα για τις Συλλογές της Java φιλτράρισμα, απεικόνιση και περιορισμός Βελτιώσεις στις βιβλιοθήκες, ώστε να υποστηρίζουν lambda (δηλ., java.util.stream, java. util.function) Date & Time API (java.time) Βελτιώσεις στη συγχρονικότητα του Java API Μέθοδοι static και default σε διασυνδέσεις Λειτουργικές διασυνδέσεις διασυνδέσεις που ορίζουν μόνο μια αφηρημένη μέθοδο και μπορούν να συμπεριλάβουν static και default μεθόδους Βελτιώσεις στο JavaFX Εικόνα 1 Μερικές από τις νέες λειτουργίες της Java SE 8.

25 xxviii ΠΡΟΛΟΓΟΣ Lambda, ροές και διασυνδέσεις της Java SE 8 με τις μεθόδους static και default. Οι πιο σημαντικές νέες λειτουργίες της Java SE 8 είναι τα lambda και οι συμπληρωματικές τεχνολογίες, τα οποία καλύπτουμε λεπτομερώς στο προαιρετικό Κεφάλαιο 17 και οι προαιρετικές ενότητες σημειώνονται με το "Java SE 8" σε επόμενα κεφάλαια. Στο Κεφάλαιο 17, θα δείτε ότι ο λειτουργικός προγραμματισμός με τα lambda και οι ροές μπορεί να σας βοηθήσει να γράφετε γρηγορότερα τα προγράμματά σας, πιο συνεκτικά, πιο απλά, με λιγότερα σφάλματα και τα οποία είναι ευκολότερο να χρησιμοποιήσουν παραλληλισμό, (ώστε να έχετε βελτιώσεις στην απόδοση στα πολυπύρηνα συστήματα) από προγράμματα που θα γράφατε με προηγούμενες τεχνικές. Θα δείτε ότι ο λειτουργικός προγραμματισμός συμπληρώνει τον αντικειμενοστρεφή προγραμματισμό. Αφού διαβάσετε το Κεφάλαιο 17, θα μπορείτε να υλοποιήσετε πιο έξυπνα πολλά απ' τα παραδείγματα της Java SE 7 σε όλο το βιβλίο (Εικόνα 2). SE-8 topics Κεφάλαιο 7 Κεφάλαιο 10 Κεφάλαια 12 και 22 Κεφάλαιο 14 Κεφάλαιο 15 Κεφάλαιο 23 Κεφάλαιο 25 Corresponding Java SE 8 discussions and examples Οι Ενότητες παρουσιάζουν τις βασικές δυνατότητες των lambda και των ροών που επεξεργάζονται μονοδιάστατους πίνακες. Η Ενότητα παρουσιάζουν τις νέες λειτουργίες του περιβάλλοντος της Java SE 8 (μέθοδοι default, μέθοδοι static και η έννοια των λειτουργικών διασυνδέσεων), που υποστηρίζουν λειτουργικό προγραμματισμό με lambda και ροές. Η Ενότητα 17.9 σας δείχνει πώς να χρησιμοποιείτε ένα lambda, ώστε να υλοποιείτε μια Swing λειτουργική διασύνδεση ακρόασης συμβάντων. Η Ενότητα 17.5 σας δείχνει πώς να χρησιμοποιείτε τα lambda και τις ροές, ώστε να επεξεργάζεστε συλλογές από αντικείμενα String. Η Ενότητα 17.7 σας δείχνει πώς να χρησιμοποιείτε τα lambda και τις ροές, ώστε να επεξεργάζεστε γραμμές κειμένου από ένα αρχείο. Σας δείχνει ότι τα λειτουργικά προγράμματα είναι ευκολότερο να χρησιμοποιήσουν παραλληλισμό, έτσι ώστε να εκμεταλλευτείτε πολυπύρηνες αρχιτεκτονικές για βελτίωση της απόδοσης. Παρουσιάζει επίσης την παράλληλη επεξεργασία ροών. Σας δείχνει ότι η Arrays μέθοδος parallelsort βελτιώνει την απόδοση σε πολυπύρηνες αρχιτεκτονικές όταν ταξινομείτε μεγάλους πίνακες. Η Ενότητα σας δείχνει πώς να χρησιμοποιείτε ένα lambda, ώστε να υλοποιείτε μια JavaFX λειτουργική διασύνδεση ακρόασης συμβάντων. Εικόνα 2 Συζητήσεις και παραδείγματα για τα lambda και τις ροές της Java SE 8. Πρόταση try-με-πόρους της Java SE 7 η ιασύνδεση AutoClosable. Τα αντικείμενα AutoClosable μειώνουν την πιθανότητα διαρροών των πόρων όταν τα χρησιμοποιείτε με την πρόταση try-με-πόρους, η οποία κλείνει αυτόματα τα αντικείμενα AutoClosable. Σ' αυτήν την έκδοση, χρησιμοποιούμε την πρόταση try-με-πόρους και αντικείμενα AutoClosable ανάλογα με την περίπτωση, ξεκινώντας από το Κεφάλαιο 15. Ασφάλεια της Java. Ελέγξαμε το βιβλίο μας ως προς το CERT Oracle Secure Coding Standard for Java, λαμβάνοντας υπόψη ότι είναι ένα εισαγωγικό εγχειρίδιο. είτε την ενότητα Ασφαλής Προγραμματισμός στην Java αυτού του Προλόγου για περισσότερες πληροφορίες για το CERT.

26 ΠΡΟΛΟΓΟΣ xxix NIO API της Java. Ενημερώσαμε τα παραδείγματα επεξεργασίας αρχείων στο Κεφάλαιο 15 ώστε να χρησιμοποιήσουμε λειτουργίες από το Java API NIO (νέο IO). Τεκμηρίωση της Java. Σε όλο το βιβλίο, παρέχουμε συνδέσεις σε τεκμηρίωση της Java όπου μπορείτε να μάθετε περισσότερα για τα διάφορα θέματα που παρουσιάζουμε. Για την τεκμηρίωση της Java SE 7, οι συνδέσεις ξεκινούν με: και για την τεκμηρίωση της Java SE 8, οι συνδέσεις ξεκινούν με: Αυτές οι συνδέσεις θα μπορούσαν να αλλάξουν όταν η Oracle εμφανίσει την Java SE 8, ενδεχομένως σε συνδέσεις που ξεκινούν με: Για οποιεσδήποτε συνδέσεις αλλάξουν μετά την έκδοση του βιβλίου, θα δημοσιεύσουμε ενημερώσεις στη διεύθυνση: Swing και JavaFX GUI, Γραφικά και Πολυμέσα Swing GUI και 2 Γραφικά της Java. To Swing GUI της Java συζητείται στις προαιρετικές ενότητες για το GUI και τα γραφικά στα Κεφάλαια 3 10 και στα Κεφάλαια 12 και 22. Το Swing είναι τώρα σε κατάσταση συντήρησης, δηλ., η Oracle έχει σταματήσει την ανάπτυξη και θα παράσχει μόνο διορθώσεις σε σφάλματα, ωστόσο θα παραμείνει μέρος της Java και εξακολουθεί να χρησιμοποιείται ακόμα ευρέως. Το Κεφάλαιο 13 συζητά τα 2 Γραφικά της Java. JavaFX GUI, Γραφικά και Πολυμέσα. Tα API για το GUI, τα γραφικά και τα πολυμέσα της Java είναι τώρα το JavaFX. Στο Κεφάλαιο 25, χρησιμοποιούμε το JavaFX 2.2 (που εμφανίστηκε το 2012) με την Java SE 7. Το Κεφάλαιο 26, παρουσιάζει πρόσθετες JavaFX GUI λειτουργίες και παρουσιάζουμε τα JavaFX γραφικά και πολυμέσα στα πλαίσια του Java FX 8 και Java SE 8. Στα Κεφάλαια χρησιμοποιούμε το Scene Builder, που είναι ένα εργαλείο το οποίο λειτουργεί με μεταφορά και απόθεση για τη γρήγορη και βολική δημιουργία ενός JavaFX GUI. Είναι ένα αυτόνομο εργαλείο που μπορείτε να χρησιμοποιήσετε ξεχωριστά ή με οποιαδήποτε απ' τα Java IDE. Κλιμακούμενο GUI και παρουσίαση γραφικών. Οι εισηγητές που διδάσκουν εισαγωγικά μαθήματα έχουν μια ευρεία επιλογή από ύλη να καλύψουν για τα GUI, τα γραφικά και τα πολυμέσα από καθόλου, έως προαιρετικές εισαγωγικές ενότητες στα πρώτα κεφάλαια, έως μια εις βάθος κάλυψη του Swing GUI και των Java 2 γραφικών στα Κεφάλαια 12, 13 και 22 και μια εις βάθος κάλυψη του JavaFX GUI, τα γραφικά και τα πολυμέσα στα Κεφάλαια Συγχρονικότητα Συγχρονικότητα για τη βέλτιστη πολυπύρηνη απόδοση. Σ' αυτήν την έκδοση, είχαμε την τιμή να έχουμε ως κριτικό τον Brian Goetz, συνεργαζόμενο συγγραφέα στο βιβλίο Java Concurrency in Practice (Addison-Wesley). Ενημερώσαμε το Κεφάλαιο 23, με την τεχνολογία και τις ιδιομορφίες της Java SE 8. Προσθέσαμε ένα παράδειγμα με την parallelsort ως προς ένα παράδειγμα με την sort, που χρησιμοποιεί το Java SE 8 Date/Time API ώστε να χρονομετρούμε κάθε λειτουργία και αποδεικνύουμε την καλύτερη απόδοση της parallelsort σ' ένα πολυπύρηνο σύστημα. Περιλαμβάνουμε ένα παράδειγμα παράλληλης επεξεργασίας της Java SE 8 ως προς ένα παράδειγμα σειριακής ροής, χρησιμοποιώντας πάλι το Date/Time API, ώστε να καταδείξουμε

27 xxx ΠΡΟΛΟΓΟΣ τις βελτιώσεις στην απόδοση. Τέλος, προσθέσαμε ένα παράδειγμα CompletableFuture στην Java SE 8 που δείχνει τη σειριακή και την παράλληλη εκτέλεση μακροσκελών υπολογισμών. Κλάση SwingWorker. Χρησιμοποιούμε την κλάση SwingWorker, ώστε να δημιουργήσουμε πολυνηματικά περιβάλλοντα χρήστη. Η συγχρονικότητα παρέχει προκλήσεις. Ο προγραμματισμός εφαρμογών που εκτελούνται ταυτόχρονα είναι δύσκολος και επιρρεπής σε λάθη. Υπάρχει μια μεγάλη ποικιλία λειτουργιών συγχρονικότητας. Επισημαίνουμε αυτές που θα πρέπει να χρησιμοποιούν οι περισσότεροι άνθρωποι και αναφέρουμε εκείνες που θα πρέπει να χρησιμοποιούν οι πιο έμπειροι. Παίρνοντας Σωστά τα Ποσά σε Νόμισμα Νομισματικά Ποσά. Στα πρώτα κεφάλαια, για ευκολία, χρησιμοποιούμε τον τύπο double για νομισματικά ποσά. Λόγω της πιθανότητας να γίνουν λανθασμένοι νομισματικοί υπολογισμοί με τον τύπο double, θα πρέπει να χρησιμοποιηθεί η κλάση BigDecimal, (που είναι λίγο πιο σύνθετη) για τα νομισματικά ποσά. Παρουσιάζουμε υξμ BigDecimal στα Κεφάλαια 8 και 25. Τεχνολογία Αντικειμένου Αντικειμενοστραφής προγραμματισμός και σχεδίαση. Χρησιμοποιούμε μια προσέγγιση πρότερης σύνδεσης αντικειμένων, παρουσιάζοντας τις βασικές έννοιες και την ορολογία της τεχνολογίας αντικειμένου στο Κεφάλαιο 1. Οι σπουδαστές αναπτύσσουν τις πρώτες προσαρμοσμένες κλάσεις και αντικείμενα στο Κεφάλαιο 3. Η παρουσίαση των αντικειμένων και των κλάσεων νωρίς, κάνει τους σπουδαστές να αρχίσουν αμέσως "να σκέπτονται με αντικείμενα" και να μάθουν αυτές τις έννοιες πιο εκτενώς. Πραγματικές μελέτες περίπτωσης πρότερης σύνδεσης. Η παρουσίαση νωρίς των κλάσεων και αντικειμένων παρέχει μελέτες περίπτωσης όπως τις Account, Student, AutoPolicy, Time, Employee, GradeBook και ανακάτεμα τράπουλας, παρουσιάζοντας σταδιακά τις βαθύτερες έννοιες του αντικειμενοστραφούς προγραμματισμού. Κληρονομικότητα, ιασυνδέσεις, Πολυμορφισμός και Σύνθεση. Χρησιμοποιούμε μια σειρά πραγματικών μελετών περίπτωσης, ώστε να δείξουμε κάθε μια απ' αυτές τις έννοιες του αντικειμενοστραφούς προγραμματισμού και να εξηγήσουμε καταστάσεις στις οποίες προτιμάται κάθε μια από αυτές στην δημιουργία ισχυρών εμπορικών εφαρμογών. Χειρισμός εξαιρέσεων. Ενσωματώνουμε το βασικό χειρισμό εξαιρέσεων νωρίς στο βιβλίο και μετά τον παρουσιάζουμε σε μεγαλύτερο βάθος στο Κεφάλαιο 11. Ο χειρισμός εξαιρέσεων είναι σημαντικός για εφαρμογές με "κρίσιμους στόχους" και "επιχειρησιακά σημαντικούς". Οι προγραμματιστές θα πρέπει να απαντούν στα ερωτήματα "Τι συμβαίνει όταν το συστατικό που καλώ για να κάνω κάτι αντιμετωπίζει δυσκολίες; Πώς θα δώσει σήμα αυτό το συστατικό ότι είχε πρόβλημα;" Για να χρησιμοποιήσετε ένα Java συστατικό, θα πρέπει να ξέρετε όχι μόνο πώς συμπεριφέρεται αυτό το συστατικό "όταν τα πράγματα πάνε καλά" αλλά και ποιες εξαιρέσεις "θα εμφανίσει" το συστατικό όταν "πηγαίνουν τα πράγματα δεν πάνε καλά". Κλάση Arrays και ArrayList. Το Κεφάλαιο 7 καλύπτει την κλάση Arrays, η οποία περιέχει μεθόδους για εκτέλεση συνηθισμένων πράξεων με πίνακες και την κλάση ArrayList, η οποία υλοποιεί μια δομή δεδομένων πίνακα που αλλάζει δυναμικά μέγεθος. Όλο αυτό ακολουθεί τη φιλοσοφία μας για εξάσκηση χρησιμοποιώντας υπάρχουσες κλάσεις, ενώ μαθαίνουμε πώς να ορίζουμε τις δικές σας κλάσεις. Η πλούσια επιλογή ασκήσεων του κεφαλαίου περιλαμβάνει ένα σημαντικό έργο για την δημιουργία του δικού σας υπολογιστή μέσω της τεχνικής της προσομοίωσης λογισμικού. Το Κεφάλαιο 21 περιλαμβάνει ένα έργο το οποίο συνεχίζει την δημιουργία του δικού σας μεταγλωττιστή που μπορεί να μεταγλωττίσει προγράμματα γραμμένα σε γλώσσα υψηλού επιπέδου σε κώδικα γλώσσας μηχανής που θα εκτελέσει στον προσομοιωτή υπολογιστών σας.

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΟΓ ΟΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc.

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΟΓ ΟΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc. Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΟΓ ΟΗ ΕΚ ΟΣΗ Paul Deitel Deitel & Associates, Inc. Harvey Deitel Deitel & Associates, Inc. Απόδοση: Μαίρη Γκλα βά Μαθηματικός, MSc Computer Sci ence Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου

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

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

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

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

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

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

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

HTML5, CSS και JavaScript

HTML5, CSS και JavaScript Μάθετε HTML5, CSS και JavaScript Όλα σε Ένα 2 Η ΕΚ ΟΣΗ Julie C. Meloni Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.:

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

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

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

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

JAVA 8 Ο ΗΓΟΣ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΕΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΤΡΙΤΗ ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος

JAVA 8 Ο ΗΓΟΣ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΕΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΤΡΙΤΗ ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος JAVA 8 Ο ΗΓΟΣ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΕΣ ΤΡΙΤΗ ΕΚ ΟΣΗ Paul Deitel Deitel & Associates, Inc. Harvey Deitel Deitel & Associates, Inc. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου

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

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP Εισαγωγή... 1 Σε Ποιους Απευθύνεται το Βιβλίο... 1 Η Οργάνωση του Βιβλίου... 2 Ο Πηγαίος Κώδικας του Βιβλίου... 3 Συμβάσεις που Χρησιμοποιούνται σε Αυτό το Βιβλίο... 3 Μέρος Ι: Εγκατάσταση και ιαμόρφωση

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

Οδηγός των Ελληνικών Microsoft WINDOWS 7

Οδηγός των Ελληνικών Microsoft WINDOWS 7 Οδηγός των Ελληνικών Microsoft WINDOWS 7 Chris Fehily Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2010 www.mgiurdas.gr Τίτλος

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

PHP, MySQL. και Apache Όλα σε Ένα. Μάθετε. Εκδόσεις: Μ. Γκιούρδας. Julie C. Meloni. 5 η Έκδοση

PHP, MySQL. και Apache Όλα σε Ένα. Μάθετε. Εκδόσεις: Μ. Γκιούρδας. Julie C. Meloni. 5 η Έκδοση Μάθετε PHP, MySQL και Apache Όλα σε Ένα Julie C. Meloni 5 η Έκδοση Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.:

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

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

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

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

Adobe FLASH Professional CC

Adobe FLASH Professional CC Adobe FLASH Professional CC ΒHΜΑ ΠΡΟΣ ΒHΜΑ Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2014 www.mgiurdas.gr Τίτλος Πρωτοτύπου:

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

Dreamweaver. Adobe ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού

Dreamweaver. Adobe ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Adobe Dreamweaver CC ΒHΜΑ ΠΡΟΣ ΒHΜΑ Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 Τηλ.: 210 3630219 106 81 Αθήνα, 2014 www.mgiurdas.gr Τίτλος Πρωτοτύπου: Adobe

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

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Διαδικτυακές Εφαρμογές Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Προγραμματισμός για το Web

Προγραμματισμός για το Web Πίνακας Περιεχομένων iii Προγραμματισμός για το Web Όλα όσα πρέπει να γνωρίζετε Randy Connolly Mount Royal University, Calgary Ricardo Hoar Mount Royal University, Calgary Απόδοση: Αγαμέμνων Μήλιος Μηχανικός

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

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

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

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

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

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

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

Java 7. Οδηγός της. Εκδόσεις: Μ. Γκιούρδας. Herbert Schildt. 5 η ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού

Java 7. Οδηγός της. Εκδόσεις: Μ. Γκιούρδας. Herbert Schildt. 5 η ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Οδηγός της Java 7 5 η ΕΚ ΟΣΗ Herbert Schildt Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2012 www.mgiurdas.gr 00_CONT_java.indd

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

Certified Java Programmer (CJP)

Certified Java Programmer (CJP) Certified Java Programmer (CJP) Εξεταστέα Ύλη (Syllabus) Πνευµατικά ικαιώµατα Το παρόν είναι πνευµατική ιδιοκτησία της ACTA Α.Ε. και προστατεύεται από την Ελληνική και Ευρωπαϊκή νοµοθεσία που αφορά τα

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

Τίτλος Πακέτου Certified Computer Expert-ACTA

Τίτλος Πακέτου Certified Computer Expert-ACTA Κωδικός Πακέτου ACTA - CCE - 002 Τίτλος Πακέτου Certified Computer Expert-ACTA Εκπαιδευτικές Ενότητες Επεξεργασία Κειμένου - Word Δημιουργία Εγγράφου Προχωρημένες τεχνικές επεξεργασίας κειμένου & αρχείων

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

ActionScript 3.0 για το Adobe Flash. CS5 Professional ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Χρυσούλα Απ. Κουτρούμπα Ηλεκτρ.

ActionScript 3.0 για το Adobe Flash. CS5 Professional ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Χρυσούλα Απ. Κουτρούμπα Ηλεκτρ. ActionScript 3.0 για το Adobe Flash CS5 Professional ΒHΜΑ ΠΡΟΣ ΒHΜΑ Απόδοση: Χρυσούλα Απ. Κουτρούμπα Ηλεκτρ. Μηχανικός Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2011

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

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

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

PHP, MySQL. Μάθετε. και Apache. Όλα σε Ένα. Εκδόσεις: Μ. Γκιούρδας. 4 η Έκδοση. Julie C. Meloni

PHP, MySQL. Μάθετε. και Apache. Όλα σε Ένα. Εκδόσεις: Μ. Γκιούρδας. 4 η Έκδοση. Julie C. Meloni Μάθετε PHP, MySQL και Apache Όλα σε Ένα Julie C. Meloni 4 η Έκδοση Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.:

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

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

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

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

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

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

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

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

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

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

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

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

1 Εισαγωγή στην Πληροφορική ΠΕΡΙΕΧΟΜΕΝΑ Χρήση Ηλεκτρονικού Υπολογιστή 1 Εισαγωγή στην Πληροφορική 1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 17 Τι είναι ο Ηλεκτρονικός Υπολογιστής 18 Υλικό Λογισµικό 19 Ιστορική Εξέλιξη των Η/Υ

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

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

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

Photoshop CC. Adobe ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc.

Photoshop CC. Adobe ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Adobe Photoshop CC ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2014 www.mgiurdas.gr

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

Windows 8.1 Word 2013 Excel 2013

Windows 8.1 Word 2013 Excel 2013 3 σε 1 Windows 8.1 Word 2013 Excel 2013 ΓΡΗΓΟΡΑ ΚΑΙ ΑΠΛΑ ΜΑΙΡΗ ΓΚΛΑΒΑ Μαθηματικός, MSc Computer Science _CONT_3 se 1.indd iii 18/8/2014 9:13:02 πμ τίτλος: 3 ΣΕ 1 WINDOWS 8.1 - WORD 2013 - EXCEL 2013 ΓΡΗΓΟΡΑ

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

Προγραμματίζετε. Μάθετε να. σε 24 Ώρες. Εκδόσεις: Μ. Γκιούρδας. 3 η ΕΚ ΟΣΗ. Greg Perry Dean Miller. Απόδοση: Γιάννης Β. Σαμαράς

Προγραμματίζετε. Μάθετε να. σε 24 Ώρες. Εκδόσεις: Μ. Γκιούρδας. 3 η ΕΚ ΟΣΗ. Greg Perry Dean Miller. Απόδοση: Γιάννης Β. Σαμαράς Μάθετε να Προγραμματίζετε σε 24 Ώρες 3 η ΕΚ ΟΣΗ Greg Perry Dean Miller Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 Τηλ.:

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

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ Χρήστος Στασινός ουλεύοντας με τη Microsoft Access ΑΘΗΝΑ Κάθε γνήσιο αντίγραφο έχει την υπογραφή του συγγραφέα Έκδοση 1η, Copyright 1998 Έκδοση 2η, Copyright 2007 ISBN: 978-960-8105-97-3 ΕΚΔΟΣΕΙΣ ΝΕΩΝ

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό (Hardware) - Λογισµικό (Software) 23 Ιστορική Εξέλιξη

1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό (Hardware) - Λογισµικό (Software) 23 Ιστορική Εξέλιξη Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Μαθαίνετε Εύκολα Microsoft Office 2003 1 Εισαγωγή στην Πληροφορική 1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό (Hardware) - Λογισµικό

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

ΠΕΡΙΕΧΟΜΕΝΑ Χρήση Ηλεκτρονικού Υπολογιστή

ΠΕΡΙΕΧΟΜΕΝΑ Χρήση Ηλεκτρονικού Υπολογιστή ΠΕΡΙΕΧΟΜΕΝΑ Χρήση Ηλεκτρονικού Υπολογιστή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Πληροφορική 1.1 Βασικές Έννοιες Τι είναι ο Ηλεκτρονικός Υπολογιστής 15 Ιστορική Ανασκόπηση 16 Γενιές Υπολογιστών 20 Κατηγορίες Υπολογιστών

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

ΚΕΦΑΛΑΙΑ. 2.5.1 attributes 2.5.2 parameters

ΚΕΦΑΛΑΙΑ. 2.5.1 attributes 2.5.2 parameters Vellum Object Oriented Programming - Java Certificate Πιστοποιητικό ανάπτυξης εφαρµογών αντικειµενοστραφούς προγραµµατισµού µε την γλώσσα Java Vellum Global Educational Services Σελίδα 1 από 1 Vellum Object

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

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

HTML. και CSS. Μάθετε την. σε 24 Ώρες. Εκδόσεις: Μ. Γκιούρδας. Julie Meloni Michael Morrison. Απόδοση: Μαίρη Γκλα βά

HTML. και CSS. Μάθετε την. σε 24 Ώρες. Εκδόσεις: Μ. Γκιούρδας. Julie Meloni Michael Morrison. Απόδοση: Μαίρη Γκλα βά Μάθετε την HTML και CSS σε 24 Ώρες Julie Meloni Michael Morrison Απόδοση: Μαίρη Γκλα βά Μαθηματικός, MSc Computer Sci ence Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα,

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

1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό - Λογισµικό 23 Ιστορική Εξέλιξη των Η/Υ 23 Γενιές

1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό - Λογισµικό 23 Ιστορική Εξέλιξη των Η/Υ 23 Γενιές Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Μαθαίνετε Εύκολα MS OFFICE 2007 1 Εισαγωγή στην Πληροφορική 1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό - Λογισµικό 23 Ιστορική Εξέλιξη

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

CS4 Professional. ActionScript 3.0 για το Adobe Flash. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Μαίρη Γκλα βά

CS4 Professional. ActionScript 3.0 για το Adobe Flash. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Μαίρη Γκλα βά ActionScript 3.0 για το Adobe Flash CS4 Professional Απόδοση: Μαίρη Γκλα βά Μαθηματικός, MSc Computer Sci ence Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2009 www.mgiurdas.gr

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

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α 1 Windows 8.1 1.1 Βασικές Έννοιες Πληροφορικής και Επικοινωνιών Εισαγωγή 19 Τι είναι ο Ηλεκτρονικός Υπολογιστής 20 Κατηγορίες Υπολογιστών 21 Κύρια μέρη ενός Προσωπικού Υπολογιστή

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

7 σε 1 Windows 8 Οffice 2013

7 σε 1 Windows 8 Οffice 2013 7 σε 1 Windows 8 Οffice 2013 ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΜΑΙΡΗ ΓΚΛΑΒΑ Μαθηματικός, MSc Computer Science Επιμέλεια: ΓΕΩΡΓΙΟΣ ΑΝΑΣΤΑΣΟΠΟΥΛΟΣ Αναπληρωτής Καθηγητής Πληροφορικής Τμήματος Ιατρικής Δ.Π.Θ. _CONT_office8.indd

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

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

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

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

Εισαγωγή στη C# και. Σημειώσεις Σεμιναρίου Επιμέλεια: Βασίλης Κόλιας. το.net 4.0

Εισαγωγή στη C# και. Σημειώσεις Σεμιναρίου Επιμέλεια: Βασίλης Κόλιας. το.net 4.0 Εισαγωγή στη C# και Σημειώσεις Σεμιναρίου Επιμέλεια: Βασίλης Κόλιας το.net 4.0 2 Π ί ν α κ α ς Π ε ρ ι ε χ ο μ έ ν ω ν Πίνακας Περιεχομένων... 1 1. Εισαγωγή... 11 1.1. Γλώσσες και γλώσσες προγραμματισμού...

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

Μάθετε την. HTML και CSS. σε 24 Ώρες

Μάθετε την. HTML και CSS. σε 24 Ώρες Μάθετε την HTML και CSS σε 24 Ώρες _ARXIKA_24HTML.indd i 1/7/2010 3:27:35 μμ _ARXIKA_24HTML.indd ii 1/7/2010 3:27:35 μμ Μάθετε την HTML και CSS σε 24 Ώρες Julie Meloni Michael Morrison Απόδοση: Μαίρη Γκλα

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

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

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

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος... Περιεχόμενα Πρόλογος...11 Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών... 13 1.1 Εισαγωγή στους υπολογιστές... 15 1.2 Μονάδες μέτρησης... 27 1.3 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή...

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

Certified Computer Expert (CCE)

Certified Computer Expert (CCE) Certified Computer Expert (CCE) Εξεταστέα Ύλη (Syllabus) Πνευµατικά ικαιώµατα Το παρόν είναι πνευµατική ιδιοκτησία της ACTA Α.Ε. και προστατεύεται από την Ελληνική και Ευρωπαϊκή νοµοθεσία που αφορά τα

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

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή...15 Κεφάλαιο 1: Εγκατάσταση της Access 2002...17 Τι είναι το Office XP;...17 Τεχνικές απαιτήσεις του Office XP...17 Πρόσθετα απαιτούμενα για την αξιοποίηση εξειδικευμένων χαρακτηριστικών...18

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

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

Photoshop CS6. Adobe ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc.

Photoshop CS6. Adobe ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Adobe Photoshop CS6 ΒHΜΑ ΠΡΟΣ ΒHΜΑ Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2013

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

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

ΥΠΟΧΡΕΩΤΙΚΕΣ ΓΝΩΣΕΙΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΡΟΣ ΙΙ Κωδικός Πακέτου ACTA CCU/2-012 Τίτλος Πακέτου Εκπαιδευτικές Ενότητες ΥΠΟΧΡΕΩΤΙΚΕΣ ΓΝΩΣΕΙΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΡΟΣ ΙΙ Χρήση Η/Υ και ιαχείριση Αρχείων - Windows Περιβάλλον Η/Υ - Βασικές Λειτουργίες και Ρυθµίσεις

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

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

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

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

Week. 6: Java Collections

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

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

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

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

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

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

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο : 2. Α/Α Διάλεξης : 1 1. Τίτλος : Εισαγωγή στην Ψηφιακή Τεχνολογία 2. Μαθησιακοί Στόχοι : Λογικές Πύλες και η υλοποίησή τους με τρανζίστορ. Κατασκευή ολοκληρωμένων κυκλωμάτων. 3. Θέματα που καλύπτει : Λογικές

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

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6

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

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Πλήρης Οδηγός για το ίπλωµα ECDL 1 Εισαγωγή στην Πληροφορική 1.1 Βασικές Έννοιες της Πληροφορικής Εισαγωγή 21 Τι είναι ο Ηλεκτρονικός Υπολογιστής 22 Υλικό - Λογισµικό 23 Ιστορική

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ 1. ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝ ΕΦΑΡΜΟΓΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΚΕΙΜΕΝΟΥ 1.1. Χειρισµός εγγράφων 1.1.1. ηµιουργία, Άνοιγµα, Κλείσιµο, Αποθήκευση εγγράφου 1.1.2. Αποθήκευση εγγράφου µε

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

C# 3.0. Οδηγός της. Εκδόσεις: Μ. Γκιούρδας. Herbert Schildt. Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc.

C# 3.0. Οδηγός της. Εκδόσεις: Μ. Γκιούρδας. Herbert Schildt. Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Οδηγός της C# 3.0 Herbert Schildt Απόδοση: Γιάννης Β. Σαμαράς Ηλεκτρολόγος Μηχανολόγος Ε.Μ.Π. M.Sc. Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2009 www.mgiurdas.gr

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Πρόλογος... 11 Μέρος Α: Στοιχεία Αλγοριθμικής... 15 1 Επίλυση προβλημάτων με Η/Υ... 19 1.1 Εισαγωγή... 19 1.2 Αλγόριθμοι-αλγοριθμικά προβλήματα... 20 1.3 Το μαθηματικό μοντέλο... 26

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

Java 7. Μάθετε την. σε 24 Ώρες. Εκδόσεις: Μ. Γκιούρδας. 6 η ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού

Java 7. Μάθετε την. σε 24 Ώρες. Εκδόσεις: Μ. Γκιούρδας. 6 η ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Μάθετε την Java 7 σε 24 Ώρες 6 η ΕΚ ΟΣΗ Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2012 www.mgiurdas.gr _CONT_java7.indd

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

InDesign CS5. Adobe ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Μαίρη Γκλα βά

InDesign CS5. Adobe ΒHΜΑ ΠΡΟΣ ΒHΜΑ. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Μαίρη Γκλα βά Adobe InDesign CS5 ΒHΜΑ ΠΡΟΣ ΒHΜΑ Απόδοση: Μαίρη Γκλα βά Μαθηματικός, MSc Computer Sci ence Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2011 www.mgiurdas.gr ind00_cont.indd

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

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

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

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

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

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Πρόλογος... 11 Μέρος Α: Στοιχεία Αλγοριθμικής... 15 1 Επίλυση προβλημάτων με Η/Υ... 19 1.1 Εισαγωγή... 19 1.2 Αλγόριθμοι αλγοριθμικά προβλήματα... 20 1.3 Το μαθηματικό μοντέλο... 26

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

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

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

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

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

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

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

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

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

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

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

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

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

Adobe Premiere Pro CS6

Adobe Premiere Pro CS6 Adobe Premiere Pro CS6 ΒHΜΑ ΠΡΟΣ ΒHΜΑ Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2013 www.mgiurdas.gr Τίτλος Πρωτοτύπου:

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

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα...

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα... Κ. Π Α Π Α Ρ Ρ Ι Ζ Ο Σ M A T L A B 6 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Π Ρ Ο Λ Ο Γ Ο Σ............. v Κ Ε Φ Α Λ Α Ι Ο 1 Β Α Σ Ι Κ Ε Σ Λ Ε Ι Τ Ο Υ Ρ Γ Ι Ε Σ Τ Ο Υ M A T L A B 1 1.1 ΠΡΑΞΕΙΣ ΚΑΙ ΑΡΙΘΜΗΤΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

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

Τα Microsoft Windows XP και Microsoft Office Word είναι σήµατα κατατεθέντα της Microsoft Corporation.

Τα Microsoft Windows XP και Microsoft Office Word είναι σήµατα κατατεθέντα της Microsoft Corporation. Κ. Ξαρχάκος -. Καρολίδης Microsoft Office Word 2003 Θεωρία & Πράξη Copyright 2005 Βλαχοθανάση 30 117 44 Αθήνα Τηλ./Φαξ: 210 9024407 Μεσολογγίου 7 106 81 Αθήνα Τηλ.: 210 3303297 Φαξ: 210 3303298 ISBN: 960

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

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο Βάσεις Δεδομένων Εισαγωγή Ανάλυση Απαιτήσεων Φροντιστήριο 1 ο 16-10-2008 Εισαγωγή - Ορισμοί Βάση Δεδομένων είναι μία συλλογή από σχετιζόμενα αντικείμενα Ένα σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ)

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

Adobe After Effects CS4

Adobe After Effects CS4 Adobe After Effects CS4 Βήμα προς Βήμα Απόδοση: Μαίρη Γκλα βά Μαθηματικός, MSc Computer Sci ence Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2009 www.mgiurdas.gr Τίτλος

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

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

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

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

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

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

Ο Οδηγός γρήγορης εκκίνησης

Ο Οδηγός γρήγορης εκκίνησης Ο Οδηγός γρήγορης εκκίνησης του Microsoft PowerPoint 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης.

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

Ελληνικά Microsoft Windows 10

Ελληνικά Microsoft Windows 10 Ελληνικά Microsoft Windows 10 ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ Joan Lambert Steve Lambert Απόδοση: Μαίρη Γκλαβά Μαθηματικός, MSc Computer Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 Τηλ.: 210 3630219 106 81 Αθήνα,

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Παρασκευή - 17/12/10 (08:30-11:30)

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

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

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

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