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

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

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

Transcript

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

2 Τίτλος Πρωτοτύπου: JAVA SE 8 for Programmers Third Edition ISBN-13: ISBN-10: Copyright 2014 Pearson Education, Inc. Upper Saddle River, New Jersey Αποκλειστικότητα για την Ελληνική Γλώσσα Εκδόσεις: Μόσχος Γκιούρδας Ζωοδόχου Πηγής Τηλ.: Αθήνα, ISBN: Επιμέλεια κειμένων: Μιχαήλ Μεταξάς Desktop Publishing: Κ. Καλαϊτζής, τηλ.: Εκτύπωση: ΜΗΤΡΟΠΟΛΙΣ Γραφικές Τέχνες Α.Ε., τηλ.: Βιβλιοδεσία: ΣΤΑΜΟΥ Γραφικές Τέχνες Εκδόσεις Αναδημοσίευση του βιβλίου σε οποιαδήποτε μορ φή, ολόκληρου ή μέ ρους, καθώς και των περιεχομένων προ γραμ μά των, δεν επιτρέπεται χωρίς την έγγραφη εξου σιο δό τη ση του εκδότη.

3 Στον Brian Goetz, Τον αρχιτέκτονα της γλώσσας Java της Oracle και Επικεφαλής προδιαγραφών για το Έργο Λάμδα της Java SE 8: Η καθοδήγησή σου μας βοήθησε να φτιάξουμε ένα καλύτερο βιβλίο. Σ ευχαριστούμε που επέμενες να το κάνουμε σωστά. Paul και Harvey Deitel

4 Περιεχόμενα Εισαγωγή Πρόλογος Πριν Ξεκινήσετε xxiii xxv xxxvii 1 Εισαγωγή στη Java και οκιμή μιας Εφαρμογής Java Εισαγωγή Έννοιες Τεχνολογιών Αντικειμένων Το Αυτοκίνητο σαν Αντικείμενο Μέθοδοι και κλάσεις ημιουργία Στιγμιότυπων Επαναχρησιμοποίηση Μηνύματα και Κλήσεις Μεθόδων Χαρακτηριστικά και Μεταβλητές Στιγμιότυπων Ενθυλάκωση και Απόκρυψη πληροφοριών Κληρονομικότητα ιεπαφές Αντικειμενοστραφής Ανάλυση και Σχεδίαση (OOAD) Η UML (Unified Modeling Language) Λογισμικό ανοιχτού κώδικα Java Ένα Τυπικό Περιβάλλον Ανάπτυξης Java οκιμή μιας Εφαρμογής Java Τεχνολογίες λογισμικού Μείνετε Ενημερωμένοι με τις Τεχνολογίες Πληροφορικής 18 2 Εισαγωγή στις Εφαρμογές Java: Είσοδος/Έξοδος και Τελεστές Εισαγωγή Το Πρώτο σας Πρόγραμμα στην Java: Εμφάνιση μιας Γραμμής Κειμένου Τροποποίηση του Πρώτου σας Προγράμματος Java Εμφάνιση Κειμένου με την printf 28

5 viii ΠΕΡΙΕΧΟΜΕΝΑ 2.5 Ακόμα Μία Εφαρμογή: Πρόσθεση Ακεραίων Αριθμητικές Πράξεις Λήψη Αποφάσεων: Τελεστές Ισότητας και Σχεσιακοί Τελεστές Ανακεφαλαίωση 37 3 Εισαγωγή στις Κλάσεις, τα Αντικείμενα, τις Μεθόδους και τις Ακολουθίες Χαρακτήρων Εισαγωγή Μεταβλητές Στιγμιότυπων, Μέθοδοι set και Μέθοδοι get Η Κλάση Account με μια Μεταβλητή Στιγμιότυπου, μια Μέθοδο set και μια Μέθοδο get Η Κλάση AccountTest που ημιουργεί και Χρησιμοποιεί ένα Αντικείμενο της κλάσης Account Μεταγλώττιση και Εκτέλεση Εφαρμογής με Πολλαπλές Κλάσεις ιάγραμμα UML Κλάσης Account με Μεταβλητή Στιγμιότυπου και Μεθόδους set και get Πρόσθετες Σημειώσεις για την Κλάση AccountTest Σχεδιαση Λογισμικού με private Μεταβλητές Στιγμιότυπων και public Μεθόδους set και get Βασικοί Τύποι εναντίον Τύπων Αναφοράς Η Κλάση Account: Αρχικοποίηση Αντικειμένων με Μεθόδους Κατασκευής ήλωση Μεθόδου Κατασκευής Account για Προσαρμοσμένη Αρχικοποίηση Αντικειμένου Η Κλάση AccountTest: Αρχικοποίηση Αντικειμένων Account Όταν ημιουργούνται Η Κλάση Account με Υπόλοιπο Αριθμοί Κινητής Υποδιαστολής Η Κλάση Account με Μεταβλητή Στιγμιότυπου balance Τύπου double Η Κλάση AccountTest για Χρήση της Κλάσης Account Ανακεφαλαίωση 58 4 Προτάσεις Ελέγχου: Μέρος 1 Τελεστές Εκχώρησης, ++, Εισαγωγή ομές ελέγχου Πρόταση Μίας Επιλογής if Πρόταση ιπλής Επιλογής if else Κλάση Student: Ένθετες Προτάσεις if else Πρόταση Επανάληψης while Επανάληψη Ελεγχόμενη από Μετρητή Επανάληψη Ελεγχόμενη από Τιμή Φρουρό Ένθετες Προτάσεις Ελέγχου Σύνθετοι Τελεστές Εκχώρησης Τελεστές Αύξησης και Μείωσης Βασικοί Τύποι Ανακεφαλαίωση 85

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

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

8 ΠΕΡΙΕΧΟΜΕΝΑ xi 9.5 Μέθοδοι Κατασκευής σε Υποκλάσεις Η Κλάση 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 Ξετύλιγμα Στοίβας και Λήψη Πληροφοριών από ένα Αντικείμενο Εξαίρεσης 322

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

10 ΠΕΡΙΕΧΟΜΕΝΑ xiii 13.9 Ανακεφαλαίωση Συμβολοσειρές, Χαρακτήρες και Κανονικές Εκφράσεις Εισαγωγή Τα Βασικά των Χαρακτήρων και των Συμβολοσειρών Η Κλάση String Μέθοδοι Κατασκευής String String Μέθοδοι length, charat και getchars Σύγκριση Συμβολοσειρών Εντοπισμός Χαρακτήρων και Υποσυμβολοσειρών σε Συμβολοσειρές Εξαγωγή Υποσυμβολοσειρών από Συμβολοσειρές Συνένωση Συμβολοσειρών ιάφορες Μέθοδοι String String Μέθοδος valueof Η Κλάση StringBuilder Μέθοδοι Κατασκευής StringBuilder StringBuilder Μέθοδοι length, capacity, setlength και ensurecapacity StringBuilder Μέθοδοι charat, setcharat, getchars και reverse StringBuilder Μέθοδοι append Μέθοδοι Εισαγωγής και ιαγραφής της StringBuilder Η Κλάση Character Μετατροπή Συμβολοσειρών σε ιακριτικά Κανονικές Εκφράσεις, Κλάση Pattern και Κλάση Matcher Ανακεφαλαίωση Αρχεία, Ροές και Σειριακή Επεξεργασία Αντικειμένων Εισαγωγή Αρχεία και Ροές Χρήση Κλάσεων και ιεπαφών NIO για Λήψη Πληροφοριών Αρχείων και Καταλόγων Αρχεία Κειμένου Σειριακής Προσπέλασης ημιουργία Αρχείου Κειμένου Σειριακής Προσπέλασης Ανάγνωση εδομένων από Αρχείο Κειμένου Σειριακής Προσπέλασης Μελέτη Περίπτωσης: Πρόγραμμα Ελέγχου Πιστώσεων Ενημέρωση Αρχείων Σειριακής Προσπέλασης Σειριακή Επεξεργασία Αντικειμένων ημιουργία Αρχείου Σειριακής Προσπέλασης Χρησιμοποιώντας Σειριοποίηση Αντικειμένου Ανάγνωση και Αποσειριοποίηση εδομένων από Αρχείο Σειριακής Πρόσβασης Άνοιγμα Αρχείων με την JFileChooser (Προαιρετικό) Πρόσθετες Κλάσεις java.io ιεπαφές και Κλάσεις για Είσοδο και Έξοδο Βασισμένη σε byte ιεπαφές και Κλάσεις για Είσοδο και Έξοδος Βασισμένη σε Χαρακτήρες Ανακεφαλαίωση 506

11 xiv ΠΕΡΙΕΧΟΜΕΝΑ 16 Γενικές Συλλογές Εισαγωγή Επισκόπηση Συλλογών Κλάσεις Τύπου Περιβλήματος Αυτόματη Πλαισίωση και Αυτόματη Αποπλαισίωση Η ιεπαφή Collection και η Κλάση Collections Λίστες ArrayList και Iterator LinkedList Μέθοδοι Συλλογών Μέθοδος sort Μέθοδος shuffle Μέθοδοι reverse, fill, copy, max και min Μέθοδος binarysearch Μέθοδοι addall, frequency και disjoint Η Κλάση Stack του Πακέτου java.util Οι Κλάσεις PriorityQueue και η ιεπαφή Queue Σύνολα Χάρτες Κλάση Properties Συγχρονισμένες Συλλογές Μη Τροποποιήσιμες Συλλογές Αφαιρετικές Υλοποιήσεις Ανακεφαλαίωση Λάμδα και Ροές της Java SE Εισαγωγή Επισκόπηση Τεχνολογιών Λειτουργικού Προγραμματισμού Λειτουργικές ιεπαφές Εκφράσεις Λάμδα Ροές IntStream Ενέργειες ημιουργία ενός IntStream και Εμφάνιση των Τιμών του με την Τερματική Ενέργεια foreach Τερματικές ενέργειες count, min, max, sum και average Τερματική Ενέργεια reduce Ενδιάμεσες Ενέργειες: Φιλτράρισμα και Ταξινόμηση Τιμών IntStream Ενδιάμεση Ενέργεια: Αντιστοίχιση ημιουργία Ροών από int με τις IntStream Μεθόδους range και rangeclosed Stream<Integer> Χειρισμοί ημιουργία Stream<Integer> Ταξινόμηση Stream και Συλλογή των Αποτελεσμάτων Φιλτράρισμα Stream και Ταξινόμηση των Αποτελεσμάτων για Μεταγενέστερη Χρήση 563

12 ΠΕΡΙΕΧΟΜΕΝΑ xv Φιλτράρισμα και Ταξινόμηση Stream και Συλλογή των Αποτελεσμάτων Ταξινόμηση Αποτελεσμάτων που Συλλέχθηκαν Προηγουμένως Stream<String> Χειρισμοί Αντιστοίχιση String με Κεφαλαία Γράμματα Χρησιμοποιώντας μια Αναφορά Μεθόδου Φιλτράρισμα String Όταν Ταξινομούνται σε Αύξουσα Σειρά Χωρίς ιάκριση Πεζών-Κεφαλαίων Φιλτράρισμα String Όταν Ταξινομούνται σε Φθίνουσα Σειρά Χωρίς ιάκριση Πεζών-Κεφαλαίων Stream<Employee>Χειρισμοί ημιουργία και Εμφάνιση List<Employee> Φιλτράρισμα Employee Κατά Μισθούς σε Καθορισμένο ιάστημα Ταξινόμηση Employee Κατά Πολλαπλά Πεδία Αντιστοίχιση Employee σε Μοναδικά String Επωνύμων Ομαδοποίηση Employee Κατά Τμήμα Μέτρηση του Αριθμού Employee σε Κάθε Τμήμα Υπολογισμός Αθροίσματος και Μέσου Όρου Μισθών Employee ημιουργία Stream<String> από Αρχείο Παραγωγή Ροών Τυχαίων Τιμών Χειριστές Συμβάντων Λάμδα Πρόσθετες Σημειώσεις για τις ιεπαφές της Java SE Πόροι για τη Java SE 8 και τον Λειτουργικό Προγραμματισμό Ανακεφαλαίωση Γενικεύσεις Εισαγωγή Κίνητρα για Χρήση Γενικών Μεθόδων Γενικές Μέθοδοι: Υλοποίηση και Μετάφραση κατά την Μεταγλώττιση Πρόσθετα Θέματα Μετάφρασης Κατά την Μεταγλώττιση: Μέθοδοι που Χρησιμοποιούν μια Παράμετρο Τύπου ως Τύπο Επιστροφής Υπερφόρτωση Γενικών Μεθόδων Γενικές Κλάσεις Ακατέργαστοι Τύποι Χαρακτήρες-Μπαλαντέρ σε Μεθόδους που έχονται Παραμέτρους Τύπων Ανακεφαλαίωση Στοιχεία Γραφικού Περιβάλλοντος Swing: Μέρος Εισαγωγή JSlider Τα Παράθυρα στη Java Χρήση Μενού με Πλαίσια JPopupMenu Προσαρμόσιμη Εμφάνιση και Αίσθηση JDesktopPane και JInternalFrame JTabbedPane 636

13 xvi ΠΕΡΙΕΧΟΜΕΝΑ 19.9 ιαχειριστής ιατάξεων BoxLayout ιαχειριστής ιατάξεων GridBagLayer Ανακεφαλαίωση Ταυτοχρονισμός Εισαγωγή Καταστάσεις Νημάτων και Κύκλος Ζωής Η Νέα και η Εκτελέσιμη Κατάσταση Η Κατάσταση Αναμονής Η Κατάσταση Χρονομετρημένης Αναμονής Η Κατάσταση Αποκλεισμού Η Κατάσταση Τερματισμού Ο Τρόπος που Βλέπει το Λειτουργικό Σύστημα την Κατάσταση Runnable Προτεραιότητες Νημάτων και Χρονοπρογραμματισμός Νημάτων Αόριστη Αναβολή και Αδιέξοδο ημιουργία και Εκτέλεση Νημάτων με το Πλαίσιο Executor Συγχρονισμός Νημάτων Αμετάβλητα εδομένα Παρακολουθητές Μη Συγχρονισμένη Κοινή Χρήση εδομένων Συγχρονισμένη Κοινή Χρήση εδομένων Κάνοντας τις Λειτουργίες Ατομικές Σχέση Παραγωγού/Καταναλωτή Χωρίς Συγχρονισμό Σχέση Παραγωγού/Καταναλωτή: ArrayBlockingQueue (Προχωρημένο) Σχέση Παραγωγού/Καταναλωτή με synchronized, wait, notify και notifyall (Προχωρημένο) Σχέση Παραγωγού/Καταναλωτή: Buffer με Όρια (Προχωρημένο) Σχέση Παραγωγού/Καταναλωτή: Οι ιεπαφές Lock και Condition Ταυτόχρονες Συλλογές Ταυτοχρονισμός με GUI: SwingWorker Εκτέλεση Υπολογισμών σε ένα Νήμα Εργάτη: Αριθμοί Fibonacci Επεξεργασία Ενδιάμεσων Αποτελεσμάτων με την SwingWorker Χρονομετρήσεις sort/parallelsort με το API Date/Time της Java SE Java SE 8: Σειριακές εναντίον Παράλληλων Ροών (Προχωρημένο) ιεπαφές Callable και Future (Προχωρημένο) Πλαίσιο Fork/Join Ανακεφαλαίωση Προσπέλαση Βάσεων εδομένων με το JDBC Εισαγωγή Σχεσιακές Βάσεις εδομένων Η Βάση εδομένων books SQL Βασικό Ερώτημα SELECT 739

14 ΠΕΡΙΕΧΟΜΕΝΑ xvii Φράση WHERE Φράση ORDER BY Συγχώνευση εδομένων από Πολλούς Πίνακες: INNER JOIN Πρόταση INSERT Πρόταση UPDATE Πρόταση DELETE Εγκατάσταση Βάσης εδομένων Java DB ημιουργία των Βάσεων εδομένων του Κεφαλαίου στα Windows ημιουργία των Βάσεων εδομένων του Κεφαλαίου σε Mac OS X ημιουργία των Βάσεων εδομένων του Κεφαλαίου σε Linux Χειρισμός Βάσεων εδομένων με το JDBC Σύνδεση και Υποβολή Ερωτημάτων σε μία Βάση εδομένων Υποβολή Ερωτημάτων στην Βάση εδομένων books ιεπαφή RowSet PreparedStatement Αποθηκευμένες ιαδικασίες Επεξεργασία Συναλλαγών Ανακεφαλαίωση Οι GUI του JavaFX Εισαγωγή JavaFX Scene Builder και το NetBeans IDE ομή Παραθύρου Εφαρμογής JavaFX Εφαρμογή Welcome Εμφάνιση Κειμένου και Εικόνας ημιουργία του Έργου της Εφαρμογής Παράθυρο Projects του NetBeans Προβολή των Περιεχομένων του Έργου Προσθήκη Εικόνας στο Έργο Άνοιγμα του JavaFX Scene Builder από το NetBeans Αλλαγή σε Container ιάταξης VBox ιαμόρφωση του Container ιάταξης VBox Προσθήκη και ιαμόρφωση ενός Label Προσθήκη και ιαμόρφωση ενός ImageView Εκτέλεση της Εφαρμογής Welcome Εφαρμογή Tip Calculator Εισαγωγή στο Χειρισμό Συμβάντων οκιμή της Εφαρμογής Tip Calculator Επισκόπηση τεχνολογιών Κατασκευή της GUI της Εφαρμογής Κλάση TipCalculator Κλάση TipCalculatorController Ανακεφαλαίωση Μελέτη Περίπτωσης ΑΤΜ, Μέρος 1: Αντικειμενοστραφής Σχεδίαση με την UML Εισαγωγή Μελέτης Περίπτωσης Εξέταση του Εγγράφου Προδιαγραφών 816

15 xviii ΠΕΡΙΕΧΟΜΕΝΑ 23.3 Προσδιορισμός των Κλάσεων σε ένα Έγγραφο Προδιαγραφών Προσδιορισμός Ιδιοτήτων Κλάσεων Προσδιορισμός Καταστάσεων και ραστηριοτήτων Αντικειμένων Προσδιορισμός Λειτουργιών Κλάσεων Υποδεικνύοντας την Συνεργασία Μεταξύ Αντικειμένων Ανακεφαλαίωση Μελέτη Περίπτωσης ΑΤΜ, Μέρος 2: Υλοποίηση μιας Αντικειμενοστραφούς Σχεδίασης Εισαγωγή Ξεκινώντας τον Προγραμματισμό των Κλάσεων του Συστήματος ATM Ενσωμάτωση Κληρονομικότητας και Πολυμορφισμού στο Σύστημα ATM Υλοποίηση της Μελέτης Περίπτωσης του ΑΤΜ Η Κλάση ATM Η Κλάση Screen Η Κλάση Keypad Η Κλάση CashDispenser Η Κλάση DepositSlot Η Κλάση Account Η Κλάση BankDatabase Η Κλάση Transaction Η Κλάση BalanceInquiry Η Κλάση Withdrawal Η Κλάση Deposit Η Κλάση ATMCaseStudy Ανακεφαλαίωση 893 A ιάγραμμα Προτεραιότητας Τελεστών 895 B Σύνολο Χαρακτήρων ASCII 897 Γ Λέξεις-κλειδιά και εσμευμένες Λέξεις 898 Βασικοί Τύποι 899 E Χρήση του Debugger 900 E.1 Εισαγωγή 901 E.2 Σημεία ιακοπής και οι Εντολές run, stop, cont και print 901 E.3 Οι Εντολές print και set 905

16 ΠΕΡΙΕΧΟΜΕΝΑ xix E.4 Έλεγχος της Εκτέλεσης Χρησιμοποιώντας τις Εντολές step, step up και next 907 E.5 Η Εντολή watch 909 E.6 Η Εντολή clear 912 E.7 Ανακεφαλαίωση 914 ΣΤ Χρήση της Τεκμηρίωσης του Java API 915 ΣΤ.1 Εισαγωγή 915 ΣΤ.2 Πλοήγηση στο Java API 916 Ζ ημιουργία Τεκμηρίωσης με το javadoc 924 Ζ.1 Εισαγωγή 924 Ζ.2 Σχόλια Τεκμηρίωσης 924 Ζ.3 Τεκμηρίωση Πηγαίου Κώδικα Java 925 Ζ.4 javadoc 932 Ζ.5 Αρχεία που Παράγονται με το javadoc 933 H Unicode 937 H.1 Εισαγωγή 937 H.2 Μορφές Μετασχηματισμού Unicode 938 H.3 Χαρακτήρες και Σύμβολα 939 H.4 Πλεονεκτήματα/Μειονεκτήματα του Unicode 940 H.5 Χρήση του Unicode 940 H.6 Περιοχές Χαρακτήρων 942 Θ Μορφοποιημένη Έξοδος 944 Θ.1 Εισαγωγή 945 Θ.2 Ροές 945 Θ.3 Μορφοποίηση Εξόδου με την printf 945 Θ.4 Εμφάνιση Ακεραίων 946 Θ.5 Εμφάνιση Αριθμών Κινητής Υποδιαστολής 947 Θ.6 Εμφάνιση Συμβολοσειρών και Χαρακτήρων 949 Θ.7 Εμφάνιση Ημερομηνιών και Ωρών 950 Θ.8 Άλλοι Χαρακτήρες Μετατροπής 952 Θ.9 Εμφάνιση με Πλάτη Πεδίων και Ακρίβειες 954 Θ.10 Χρήση Σημαιών στην Συμβολοσειρά Μορφοποίησης της printf 956 Θ.11 Εμφάνιση με είκτες Ορισμάτων 960 Θ.12 Εμφάνιση Κυριολεκτικών και Ακολουθιών ιαφυγής 960 Θ.13 Μορφοποίηση Εξόδου με την Κλάση Formatter 961 Θ.14 Ανακεφαλαίωση 962

17 xx ΠΕΡΙΕΧΟΜΕΝΑ Ι Αριθμητικά Συστήματα 963 Ι.1 Εισαγωγή 964 Ι.2 Συντομογραφία υαδικών Αριθμών ως Οκταδικούς και εκαεξαδικούς Αριθμούς 967 Ι.3 Μετατροπή Οκταδικών και εκαεξαδικών Αριθμών σε υαδικούς Αριθμούς 968 Ι.4 Μετατροπή υαδικών, Οκταδικών ή εκαεξαδικών σε εκαδικούς 968 Ι.5 Μετατροπή εκαδικών σε υαδικούς, Οκταδικούς ή εκαεξαδικούς 969 Ι.6 Αρνητικοί υαδικοί Αριθμοί: Η Παράσταση Συμπληρώματος του ΙΑ Χειρισμός Bit 973 ΙΑ.1 Εισαγωγή 973 ΙΑ.2 Χειρισμός Bit και οι Τελεστές Bitwise 973 ΙΑ.3 Κλάση BitSet 983 ΙΒ Προτάσεις break και continue με Ετικέτες 987 ΙΒ.1 Εισαγωγή 987 ΙΒ.2 Πρόταση break με Ετικέτες 987 ΙΒ.3 Πρόταση continue με Ετικέτες 988 ΙΓ UML 2: Πρόσθετοι Τύποι ιαγραμμάτων 990 ΙΓ.1 Εισαγωγή 990 ΙΓ.2 Πρόσθετοι Τύποι ιαγραμμάτων 990 Ι Μοτίβα Σχεδίασης 992 Ι.1 Εισαγωγή 992 Ι.2 ημιουργικά, ομικά και Συμπεριφορικά Μοτίβα Σχεδίασης 993 Ι.2.1 ημιουργία Μοτίβα Σχεδίασης 994 Ι.2.2 ομικά Μοτίβα Σχεδίασης 996 Ι.2.3 Συμπεριφορικά Μοτίβα Σχεδίασης 997 Ι.2.4 Συμπέρασμα 998 Ι.3 Μοτίβα Σχεδίασης στα Πακέτα java.awt και javax.swing 998 Ι.3.1 ημιουργία Μοτίβα Σχεδίασης 999 Ι.3.2 ομικά Μοτίβα Σχεδίασης 999 Ι.3.3 Συμπεριφορικά Μοτίβα Σχεδίασης 1001 Ι.3.4 Συμπέρασμα 1005 Ι.4 Μοτίβα Σχεδίασης Ταυτοχρονισμού 1005 Ι.5 Μοτίβα Σχεδίασης στα Πακέτα java.io και java.net 1006 Ι.5.1 ημιουργικά Μοτίβα Σχεδίασης 1006 Ι.5.2 ομικά Μοτίβα Σχεδίασης 1006 Ι.5.3 Αρχιτεκτονικά Μοτίβα 1008 Ι.5.4 Συμπέρασμα 1010

18 ΠΕΡΙΕΧΟΜΕΝΑ xxi Ι.6 Μοτίβα Σχεδίασης στο Πακέτο java.util 1010 Ι.6.1 ημιουργικά Μοτίβα Σχεδίασης 1010 Ι.6.2 Συμπεριφορικά Μοτίβα Σχεδίασης 1010 Ι.7 Ανακεφαλαίωση 1011 Ευρετήριο 1013

19

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

21 Πρόλογος Καλώς ήρθατε στη Java και στο βιβλίο Java SE 8 Οδηγός για Προγραμματιστές! Αυτό το βιβλίο παρουσιάζει τεχνολογίες αιχμής για προγραμματιστές λογισμικού. Εστιάζουμε στις βέλτιστες πρακτικές σχεδιασμού λογισμικού. Το κέντρο του βιβλίου είναι το σήμα κατατεθέν της Deitel, η προσέγγιση ενεργού κώδικα αντί να χρησιμοποιούμε αποσπάσματα κώδικα, παρουσιάζουμε τις έννοιες στο πλαίσιο ολόκληρων λειτουργικών προγραμμάτων, που εκτελούνται στις τελευταίες εκδόσεις των Windows, του Linux και του OS X. Κάθε ολοκληρωμένο παράδειγμα κώδικα συνοδεύεται από δείγματα εκτέλεσης. Όλος ο πηγαίος κώδικας διατίθεται στη σελίδα: Κρατήστε επαφή με τους συγγραφείς Ενώ διαβάζετε το βιβλίο, αν έχετε ερωτήσεις, στείλτε μας ένα στη διεύθυνση deitel@deitel.com και θα απαντήσουμε όσο το δυνατόν ταχύτερα. Για ενημερώσεις γι αυτό το βιβλίο, επισκεφτείτε τη σελίδα εγγραφείτε στο ενημερωτικό φυλλάδιο Deitel Buzz Online στη σελίδα και συμμετέχετε στις κοινότητες κοινωνικής δικτύωσης της Deitel: Facebook ( Twitter (@deitel) Google+ ( YouTube ( LinkedIn ( Αρθρωτή Οργάνωση Το βιβλίο είναι κατάλληλο για προγραμματιστές, που έχουν κάποιες γνώσεις στον προγραμματισμό με γλώσσες υψηλού επιπέδου και παρουσιάζεται με μια αρθρωτή οργάνωση: Εισαγωγή Κεφάλαιο 1, Εισαγωγή στη Java και οκιμή μιας Εφαρμογής Java Κεφάλαιο 2, Εισαγωγή στις Εφαρμογές Java: Είσοδος/Έξοδος και Τελεστές Κεφάλαιο 3, Εισαγωγή στις Κλάσεις, τα Αντικείμενα, τις Μεθόδους και τις Ακολουθίες Χαρακτήρων

22 xxvi ΠΡΟΛΟΓΟΣ Πρόσθετα Θεμελιώδη Στοιχεία Προγραμματισμού Κεφάλαιο 4, Προτάσεις Ελέγχου: Μέρος 1 Τελεστές Εκχώρησης, ++, - Κεφάλαιο 5, Προτάσεις Ελέγχου: Μέρος 2 Λογικοί Τελεστές Κεφάλαιο 6, Μέθοδοι: Μια Βαθύτερη ιερεύνηση Κεφάλαιο 7, Πίνακες και Λίστες Πινάκων Κεφάλαιο 14, Συμβολοσειρές, Χαρακτήρες και Κανονικές Εκφράσεις Κεφάλαιο 15, Αρχεία, Ροές και Σειριακή Επεξεργασία Αντικειμένων Αντικειμενοστραφής Προγραμματισμός Κεφάλαιο 8, Κλάσεις και Αντικείμενα: Μια Βαθύτερη ιερεύνηση Κεφάλαιο 9, Αντικειμενοστραφής Προγραμματισμός: Κληρονομικότητα Κεφάλαιο 10, Αντικειμενοστραφής Προγραμματισμός: Πολυμορφισμός και ιεπαφές Κεφάλαιο 11, Χειρισμός Εξαιρέσεων: Μια Βαθύτερη Ματιά Γραφικές ιεπαφές Χρήστη Swing και JavaFX Γραφικά 2D στη Java Κεφάλαιο 12, Στοιχεία Γραφικού Περιβάλλοντος Swing: Μέρος 1 Κεφάλαιο 13, Γραφικά και Java 2D Κεφάλαιο 19, Στοιχεία Γραφικού Περιβάλλοντος Swing: Μέρος 2 Κεφάλαιο 22, Οι GUI του JavaFX Γενικές Συλλογές, Λάμδα και Ροές Κεφάλαιο 16, Γενικές Συλλογές Κεφάλαιο 17, Λάμδα και Ροές της Java SE 8 Κεφάλαιο 18, Γενικές Κλάσεις και Μέθοδοι Ταυτοχρονισμός/Βάση εδομένων Κεφάλαιο 20, Ταυτοχρονισμός Κεφάλαιο 21, Προσπέλαση Βάσεων εδομένων με το JDBC Αντικειμενοστραφής Σχεδίαση Κεφάλαιο 23, Μελέτη Περίπτωσης ΑΤΜ, Μέρος 1: Αντικειμενοστραφής Σχεδίαση με την UML Κεφάλαιο 24, Μελέτη Περίπτωσης ΑΤΜ, Μέρος 2: Υλοποίηση μιας Αντικειμενοστραφούς Σχεδίασης Νέες και Ενημερωμένες Λειτουργίες Σ αυτήν την ενότητα θα περιγράψουμε περιγράφουμε τις αλλαγές που έχουμε κάνει σ' αυτήν την έκδοση: Ευκολία στη χρήση με τις Java SE 7 ή Java SE 8. Η έκδοση του βιβλίου συμπίπτει με την κυκλοφορία της Java SE 8. Για να καλύψουμε τις ανάγκες του πολυποίκιλου κοινού μας, σχεδιάσαμε το βιβλίο για επαγγελματίες, που ενδιαφέρονται για τη Java SE 7, τη Java SE 8 ένα συνδυασμό τους. Οι δυνατότητες της Java SE 8 (Εικ. 4.1) καλύπτονται στο Κεφάλαιο 17 και σε ενότητες σε όλο το βιβλίο, που μπορείτε να παρακάμψετε εύκολα αν δεν σας ενδιαφέρουν.

23 ΠΡΟΛΟΓΟΣ xxvii υνατότητες της Java SE 8 Εκφράσεις λάμδα Βελτιώσεις συναγωγής τύπων Παράλληλη ταξινόμηση πινάκων Μαζικές ενέργειες σε δεδομένα για συλλογές Java filter, map και reduce Βελτιώσεις στη βιβλιοθήκη για υποστήριξη των λάμδα (π.χ. java.util.stream, java.util. function) API ώρας και ημερομηνίας (java.time) Βελτιώσεις στο API για ταυτοχρονισμό στη Java Μέθοδοι static και default σε διεπαφές Λειτουργικές διεπαφές διεπαφές που ορίζουν μόνο μία μέθοδο abstract και μπορούν να περιλαμβάνουν μεθόδους static και default Βελτιώσεις του JavaFX Εικ. 4.1 Οι δυνατότητες της Java SE 8 που θα μελετήσουμε. Λάμδα, ροές και διεπαφές της Java SE 8 με μεθόδους default και static. Οι πιο σημαντικές νέες δυνατότητες στη Java SE 8 είναι τα λάμδα και συμπληρωματικές τεχνολογίες. Στο Κεφάλαιο 17, θα δείτε ότι ο λειτουργικός προγραμματισμός με τα λάμδα και τις ροές μπορεί να σας βοηθήσει να γράφετε προγράμματα πιο γρήγορα, πιο περιεκτικά, πιο απλά, με λιγότερα λάθη και τα οποία θα μπορείτε να παραλληλίσετε πιο εύκολα (ώστε να εκμεταλλευτείτε τα συστήματα πολλαπλών πυρήνων για βελτιώσεις στις επιδόσεις) από προγράμματα που γράφονται με παλαιότερες τεχνικές (Εικ. 4.2). Θα δείτε ότι ο λειτουργικός προγραμματισμός συμπληρώνει τον αντικειμενοστραφή προγραμματισμό. Θέματα πριν τη Java SE 8 Αντίστοιχες συζητήσεις και παραδείγματα στη Java SE 8 Κεφάλαιο 7, Πίνακες και λίστες πινάκων Κεφάλαιο 10, Αντικειμενοστραφής προγραμματισμός: Πολυμορφισμός και διεπαφές Κεφάλαιο 12 και 19, Στοιχεία GUI του Swing: Μέρη 1 και 2 Κεφάλαιο 14, Συμβολοσειρές, χαρακτήρες και κανονικές εκφράσεις Οι Ενότητες παρουσιάζουν βασικές δυνατότητες λάμδα και ροών οι οποίες επεξεργάζονται πίνακες μίας διάστασης. Η Ενότητα παρουσιάζει τις νέες δυνατότητες διεπαφών της Java SE 8 (default μέθοδοι, static μέθοδοι και η έννοια των λειτουργικών διεπαφών) που υποστηρίζουν τον λειτουργικό προγραμματισμό με λάμδα και ροές. Η Ενότητα 17.9 δείχνει πώς να χρησιμοποιείτε ένα λάμδα για να υλοποιείτε μια λειτουργική διεπαφή ακροατών συμβάντων του Swing. Η Ενότητα 17.5 δείχνει πώς να χρησιμοποιείτε λάμδα και ροές για την επεξεργασία συλλογών αντικειμένων String. Εικ. 4.2 Συζητήσεις και παραδείγματα για λάμδα και ροές στη Java SE 8 (Μέρος 1 από 2).

24 xxviii ΠΡΟΛΟΓΟΣ Θέματα πριν τη Java SE 8 Αντίστοιχες συζητήσεις και παραδείγματα στη Java SE 8 Κεφάλαιο 15, Αρχεία, ροές και σειριακή επεξεργασία αντικειμένων Κεφάλαιο 20, Ταυτοχρονισμός Κεφάλαιο 22, Οι GUI του JavaFX Εικ. 4.2 Συζητήσεις και παραδείγματα για λάμδα και ροές στη Java SE 8 (Μέρος 2 από 2). Η πρόταση try με πόρους και η διεπαφή AutoClosable της Java SE 7. Τα αντικείμενα Auto- Closable μειώνουν την πιθανότητα διαρροών πόρων όταν τα χρησιμοποιείτε με την πρόταση try με πόρους, η οποία κλείνει αυτόματα τα αντικείμενα AutoClosable. Σ αυτήν την έκδοση, χρησιμοποιούμε την try με πόρους και αντικείμενα AutoClosable στην εισαγωγή του Κεφαλαίου 15, Αρχεία, ροές και σειριακή επεξεργασία αντικειμένων. Ασφάλεια στη Java. Έχουμε ελέγξει το βιβλίο με βάση το Πρότυπο ασφαλούς κωδικοποίησης CERT Oracle για τη Java: Για περισσότερες πληροφορίες για το CERT, ανατρέξτε στην ενότητα Ασφαλής Προγραμματισμός στη Java της Εισαγωγής. Java NIO API. Ενημερώσαμε τα παραδείγματα επεξεργασίας αρχείων στο Κεφάλαιο 15, ώστε να χρησιμοποιούν τις δυνατότητες του API NIO (νέο IO) της Java. Τεκμηρίωση Java. Σε όλο το βιβλίο υπάρχουν σύνδεση για την τεκμηρίωση Java, όπου μπορείτε να μάθετε περισσότερα για διάφορα θέματα που παρουσιάζουμε. Για την τεκμηρίωση της Java SE 7, οι σύνδεσμοι ξεκινούν με: και για την τεκμηρίωση της Java SE 8, οι σύνδεσμοι ξεκινούν με: Αυτοί οι σύνδεσμοι μπορεί να αλλάξουν στις επόμενες κυκλοφορίες της Oracle για τη Java SE 8 πιθανώς με συνδέσμους που ξεκινούν με: Σχετικά με τους συνδέσμους, που θα αλλάξουν μετά την έκδοση του βιβλίου, θα βρείτε ενημερώσεις στη σελίδα: Η Ενότητα 17.7 δείχνει πώς να χρησιμοποιείτε λάμδα και ροές για την επεξεργασία γραμμών κειμένου από ένα αρχείο. είχνει ότι τα λειτουργικά προγράμματα γίνονται πιο εύκολα παράλληλα, ώστε να είναι δυνατή η εκμετάλλευση των χαρακτηριστικών των αρχιτεκτονικών πολλαπλών πυρήνων για την ενίσχυση της απόδοσης. Παρουσιάζει την παράλληλη επεξεργασία ροών. είχνει ότι η Arrays μέθοδος parallelsort βελτιώνει την απόδοση σε αρχιτεκτονικές πολλαπλών πυρήνων στην ταξινόμηση μεγάλων πινάκων. Η Ενότητα δείχνει πώς μπορείτε να χρησιμοποιήσετε ένα λάμδα ώστε να υλοποιήσετε μια λειτουργική διεπαφή ακρόασης συμβάντων του JavaFX. GUI του Swing και του JavaFX Γραφικά 2D στη Java GUI του Swing και γραφικά 2D της Java. Το GUI του Swing της Java εξετάζεται στα Κεφάλαια 12 και 19. Το Swing βρίσκεται σε κατάσταση συντήρησης η Oracle έχει σταματήσει την ανά-

25 ΠΡΟΛΟΓΟΣ xxix πτυξή του και από τώρα και στο εξής θα παρέχει μόνο διορθώσεις σε λάθη, αλλά θα παραμείνει κομμάτι της Java και εξακολουθεί να χρησιμοποιείται ευρέως. Το μεγαλύτερο μέρος παλαιού κώδικα που βασίζεται σε GUI χρησιμοποιεί GUI του Swing. Το Κεφάλαιο 13 εξετάζει τα γραφικά 2D της Java. GUI του JavaFX. Οι GUI, τα γραφικά και η τεχνολογία πολυμέσων της Java προχωρά στο JavaFX. Στο Κεφάλαιο 22, χρησιμοποιούμε το JavaFX 2.2 με την Java SE 7. Χρησιμοποιούμε το Scene Builder ένα εργαλείο μεταφοράς και απόθεσης για τη δημιουργία GUI του JavaFX γρήγορα και πρακτικά. Είναι ένα αυτόνομο εργαλείο, το οποίο μπορείτε να χρησιμοποιείτε ξεχωριστά ή με IDE της Java. Ταυτοχρονισμός Ταυτοχρονισμός για βέλτιστη απόδοση σε επεξεργαστές πολλαπλών πυρήνων. Σ αυτήν την έκδοση, είχαμε το προνόμιο να συνεργαστούμε με τον Brian Goetz στην επιμέλεια του βιβλίου, ο οποίος συμμετείχε στη συγγραφή του βιβλίου Java Concurrency in Practice (Addison- Wesley). Ενημερώσαμε το Κεφάλαιο 20, Ταυτοχρονισμός, με τεχνολογία και όρους της Java SE 8. Προσθέσαμε ένα παράδειγμα που συγκρίνει τις parallelsort και sort και χρησιμοποιεί το API ημερομηνίας/ώρας της Java SE 8 ώστε να χρονομετρά κάθε ενέργεια και παρουσιάζουμε την καλύτερη απόδοση που έχει η parallelsort σε ένα σύστημα πολλαπλών πυρήνων. Συμπεριλάβαμε ένα παράδειγμα σύγκρισης της παράλληλης επεξεργασίας και της σειριακής επεξεργασίας ροών στη Java SE 8, χρησιμοποιώντας πάλι το API ημερομηνίας/ώρας της Java SE 8 για να δείξουμε τη βελτίωση στην απόδοση. Τέλος, προσθέσαμε το παράδειγμα CompletableFuture της Java SE 8, το οποίο συγκρίνει τη σχετική απόδοση της σειριακής και της παράλληλης εκτέλεσης μεγάλων πράξεων. Η κλάση SwingWorker. Χρησιμοποιούμε την κλάση SwingWorker για να δημιουργήσουμε διεπαφές χρηστών πολλαπλών νημάτων. Ο ταυτοχρονισμός είναι δύσκολος. Υπάρχουν πολλές δυνατότητες ταυτοχρονισμού. Τονίζουμε εκείνα που θα πρέπει να χρησιμοποιούν οι περισσότεροι προγραμματιστές και αναφέρουμε εκείνα που θα πρέπει να μείνουν για τους ειδικούς. Σωστά Χρηματικά Ποσά Χρηματικά ποσά. Στα πρώτα κεφάλαια, για λόγους ευκολίας, χρησιμοποιούμε τον τύπο double για να αναπαραστήσουμε χρηματικά ποσά. Εξαιτίας της πιθανότητας λάθος υπολογισμών με τον τύπο double, η κλάση BigDecimal (που είναι αρκετά πιο σύνθετη) θα πρέπει να χρησιμοποιείται για χρηματικά ποσά. Παρουσιάζουμε την BigDecimal στα Κεφάλαια 8 και 22. Τεχνολογία Αντικειμένων Αντικειμενοστραφής προγραμματισμός. Χρησιμοποιούμε μια αρχική προσέγγιση αντικειμένων, αναθεωρώντας τις βασικές έννοιες και την ορολογία της τεχνολογίας αντικειμένων από το Κεφάλαιο 1. Οι αναγνώστες αναπτύσσουν τις πρώτες προσαρμοσμένες κλάσεις και αντικείμενα στο Κεφάλαιο 3. Αρχικές μελέτες πραγματικών περιπτώσεων για αντικείμενα. Η αρχική παρουσίαση κλάσεων και αντικειμένων περιλαμβάνει τις περιπτώσεις Account, Student, AutoPolicy, Time, Employee, GradeBook και Card για ανακάτεμα και μοίρασμα χαρτιών, εμβαθύνοντας σταδιακά σε πιο σύνθετες έννοιες του αντικειμενοστραφούς προγραμματισμού. Κληρονομικότητα, διεπαφές, πολυμορφισμός και σύνθεση. Χρησιμοποιούμε μια σειρά από πραγματικές περιπτώσεις για να παρουσιάσουμε αυτές τις έννοιες αντικειμενοστραφούς προγραμματισμού και να εξηγήσουμε καταστάσεις, στις οποίες προτιμάμε καθεμία για την κατασκευή εφαρμογών επαγγελματικού επιπέδου. Μιλάμε για τις βελτιώσεις που φέρνει η Java SE 8 στην έννοια της διεπαφής.

26 xxx ΠΡΟΛΟΓΟΣ Χειρισμός εξαιρέσεων. Ενσωματώνουμε τους βασικούς χειρισμούς εξαιρέσεων νωρίς στο βιβλίο και κατόπιν τους εξετάζουμε καλύτερα στο Κεφάλαιο 11. Ο χειρισμός εξαιρέσεων είναι σημαντικός για την κατασκευή εφαρμογών απαιτητικών αποστολών και επιχειρηματικών διαδικασιών. Οι προγραμματιστές πρέπει να ενδιαφέρονται για το Τι συμβαίνει όταν το στοιχείο που επικαλούμαι για να κάνω κάτι παρουσιάζει δυσκολίες; Πώς θα με ειδοποιήσει αυτό το στοιχείο ότι είχε πρόβλημα; Για να χρησιμοποιήσετε ένα στοιχείο της Java, πρέπει να γνωρίζετε όχι μόνο πώς αυτό συμπεριφέρεται όταν όλα πηγαίνουν καλά, αλλά επίσης ποιες εξαιρέσεις προκαλεί αυτό το στοιχείο όταν τα πράγματα δεν πηγαίνουν καλά. Οι κλάσεις Arrays και ArrayList. Το Κεφάλαιο 7 καλύπτει την κλάση Arrays η οποία περιέχει μεθόδους για την εκτέλεση κοινών χειρισμών πινάκων και την κλάση ArrayList η οποία υλοποιεί μια δομή δεδομένων τύπου πίνακα της οποίας το μέγεθος αλλάζει με δυναμικό τρόπο. Αυτό ακολουθεί τη φιλοσοφία μας που υπαγορεύει να εξασκούμαστε πολύ χρησιμοποιώντας υπάρχουσες κλάσεις, ενώ μαθαίνουμε πώς να ορίζουμε τις δικές μας κλάσεις. Μελέτη περίπτωσης: Ανάπτυξη αντικειμενοστραφούς σχεδίασης και υλοποίηση ενός ATM στη Java. Τα Κεφάλαια περιλαμβάνουν μια μελέτη περίπτωσης για την αντικειμενοστραφή σχεδίαση με την UML (Unified Modeling Language ), τη γραφική γλώσσα προγραμματισμού που επικρατεί στη βιομηχανία για τη μοντελοποίηση αντικειμενοστραφών συστημάτων. Σχεδιάζουμε και υλοποιούμε το λογισμικό για ένα απλό σύστημα αυτόματων συναλλαγών (ATM). Αναλύουμε ένα έγγραφο τυπικών απαιτήσεων, που καθορίζει το σύστημα, που θα κατασκευαστεί. Προσδιορίζουμε τις κλάσεις που απαιτούνται για την υλοποίηση αυτού του συστήματος, τα χαρακτηριστικά που πρέπει να έχουν οι κλάσεις, τις συμπεριφορές που πρέπει να επιδεικνύουν οι κλάσεις και καθορίζουμε πώς οι κλάσεις πρέπει να αλληλεπιδρούν μεταξύ τους ώστε να πληρούν τις απαιτήσεις του συστήματος. Από τη σχεδίαση παράγουμε μια πλήρως κωδικοποιημένη υλοποίηση σε Java. Όσοι συμμετέχουν στα επαγγελματικά σεμινάριά μας για τη Java συχνά αναφέρουν ότι αυτή η μελέτη περίπτωσης τους βοηθά να συνδέσουν όλα τα κομμάτια του παζλ και να καταλάβουν πραγματικά τον αντικειμενοστραφή προγραμματισμό στη Java. Γενικές Συλλογές Παρουσίαση γενικών συλλογών. Ξεκινάμε με τη γενική κλάση ArrayList στο Κεφάλαιο 7. Τα Κεφάλαια παρέχουν μια βαθύτερη μελέτη των γενικών συλλογών και δείχνουν πώς χρησιμοποιούνται οι ενσωματωμένες συλλογές του Java API. είχνουμε πώς υλοποιούνται οι γενικές μέθοδοι και οι κλάσεις. Τα λάμδα και οι ροές (παρουσιάζονται στο Κεφάλαιο 17) είναι ιδιαίτερα χρήσιμα για τις γενικές συλλογές. Βάση εδομένων JDBC. Το Κεφάλαιο 21 καλύπτει το JDBC και χρησιμοποιεί το σύστημα διαχείρισης βάσεων δεδομένων Java DB. Το Κεφάλαιο παρουσιάζει τη γλώσσα SQL και περιλαμβάνει μια μελέτη περίπτωσης με αντικειμενοστραφή προγραμματισμό για την ανάπτυξη ενός βιβλίου διευθύνσεων, που βασίζεται σε μια βάση δεδομένων, με το οποίο παρουσιάζουμε τις έτοιμες προτάσεις. Ασφαλής προγραμματισμός στη Java Είναι δύσκολο να κατασκευάσουμε συστήματα επαγγελματικού επιπέδου που αντέχουν σε επιθέσεις από ιούς, σκουλήκια και άλλες μορφές κακόβουλου λογισμικού. Σήμερα, μέσω Internet, τέτοιες επιθέσεις μπορεί να είναι στιγμιαίες και παγκόσμιες. Η ενσωμάτωση ασφάλειας στο λογισμικό απ' την αρχή του κύκλου ανάπτυξης μπορεί να μειώσει σημαντικά τα ευπαθή σημεία. Ενσωματώνουμε διάφορες πρακτικές ασφαλούς προγραμματισμού στη Java στις συζητήσεις μας και τα παραδείγματα κώδικα.

27 ΠΡΟΛΟΓΟΣ xxxi Το κέντρο συντονισμού του CERT ( δημιουργήθηκε για να αναλύει και να ανταποκρίνεται άμεσα σε επιθέσεις. Το CERT Computer Emergency Response Team είναι ένας οργανισμός που λειτουργεί με κρατική επιχορήγηση στο ίδρυμα Carnegie Mellon University Software Engineering Institute. Το CERT δημοσιεύει και προωθεί πρότυπα ασφαλούς προγραμματισμού για διάφορες δημοφιλείς γλώσσες προγραμματισμού, που βοηθούν τους προγραμματιστές λογισμικού να υλοποιούν συστήματα επαγγελματικού επιπέδου και αποφεύγουν πρακτικές προγραμματισμού, που αφήνουν τα συστήματα ανοιχτά σε επιθέσεις. Θα θέλαμε να ευχαριστήσουμε τον Robert C. Seacord, ιευθυντή ασφαλούς προγραμματισμού στο CERT και αναπληρωτή καθηγητή στη σχολή Επιστήμης της Πληροφορικής του Carnegie Mellon University. Ο κύριος Seacord ήταν τεχνικός επιμελητής στο βιβλίο μας, C11 for Programmers, όπου εξέτασε διεξοδικά τα προγράμματά μας απ' την πλευρά της ασφάλειας, προτείνοντας να ακολουθήσουμε το πρότυπο ασφαλούς προγραμματισμού του CERT. Αυτή η εμπειρία επηρέασε τις πρακτικές μας και σε όλα τα επόμενα βιβλία μας. ιδακτική προσέγγιση Το βιβλίο περιέχει μια πλούσια συλλογή από παραδείγματα. Εστιάζουμε στην καλή σχεδίαση λογισμικού και τονίζουμε την καθαρότητα των προγραμμάτων. Σκίαση σύνταξης. Για μεγαλύτερη ευκολία στην ανάγνωση, τονίζουμε τον κώδικα περίπου όπως κάνουν τα περισσότερα πακέτα εργαλείων ανάπτυξης λογισμικού. Οι συμβάσεις που χρησιμοποιούμε για τη σύνταξη του κώδικα σ αυτό το βιβλίο είναι οι εξής: τα σχόλια εμφανίζονται έτσι οι εντολές εμφανίζονται έτσι όλος ο άλλος κώδικας προβάλλεται με ειδική γραμματοσειρά Επισήμανση κώδικα. Τοποθετούμε γκρι ορθογώνια γύρω από σημαντικό κώδικα. Χρήση γραμματοσειρών για λόγους έμφασης. Χρησιμοποιούμε έντονη γραφή για τους σημαντικούς όρους και την αναφορά σελίδας στο ευρετήριο για κάθε σημαντική εμφάνιση ενός όρου για εύκολη αναφορά. Χρησιμοποιούμε διαφορετικές γραμματοσειρές για τον κώδικα στα προγράμματα και μέσα στο κείμενο για να τον διακρίνετε καλύτερα. Στόχοι. Στην αρχή κάθε κεφαλαίου παραθέτουμε μια λίστα με τους εκπαιδευτικούς στόχους κάθε κεφαλαίου. Εικόνες/διαγράμματα. Πλούσια διαγράμματα, πίνακες, διαγράμματα UML, προγράμματα και έξοδοι προγραμμάτων περιλαμβάνονται σε κάθε κεφάλαιο. Συμβουλές προγραμματισμού. Έχουμε προσθέσει συμβουλές προγραμματισμού, που θα σας βοηθήσουν να εστιάσετε σε σημαντικά σημεία της ανάπτυξης λογισμικού. Αυτές οι συμβουλές και πρακτικές είναι ότι καλύτερο έχουμε συνδυάσει από επτά δεκαετίες εμπειρίας στον προγραμματισμό και τη διδασκαλία. Πρακτική Καλού Προγραμματισμού Οι Πρακτικές Καλού Προγραμματισμού επισείουν την προσοχή σε τεχνικές που θα σας βοηθήσουν να παράγετε προγράμματα, που είναι πιο καθαρά, πιο κατανοητά και πιο εύκολα συντηρήσιμα. Κοινό Σφάλμα Προγραμματισμού Οι σπουδαστές που μαθαίνουν μια γλώσσα τείνουν να κάνουν συγκεκριμένα κάποια σφάλματα πιο συχνά. Η έμφαση σ αυτά τα Κοινά Σφάλματα Προγραμματισμού μειώνει την πιθανότητα να επαναλαμβάνονται.

28 xxxii ΠΡΟΛΟΓΟΣ Υπόδειξη Αποτροπής Σφάλματος Όταν σχεδιάσαμε αρχικά αυτό το είδος συμβουλής, σκεφτόμασταν ότι θα περιέχουν προτάσεις για την επισήμανση ατελειών και την αφαίρεσή τους απ' τα προγράμματα. Πολλές μάλιστα από τις συμβουλές περιγράφουν πλευρές της C που εμποδίζουν τις ατέλειες να φτάσουν στα προγράμματα εξ αρχής. Υπόδειξη Βέλτιστης Απόδοσης Συμπεριλάβαμε Υποδείξεις Βέλτιστης Απόδοσης, που επισημάνουν τις ευκαιρίες για βελτίωση της απόδοσης των προγραμμάτων, δηλαδή της πιο γρήγορης εκτέλεσης ή της ελαχιστοποίησης της ποσότητας μνήμης, που καταλαμβάνουν. Υπόδειξη Φορητότητας Συμπεριλάβαμε Υποδείξεις Φορητότητας ώστε να σας βοηθήσουμε να γράψετε φορητό κώδικα και να δείτε πώς η C επιτυγχάνει υψηλό βαθμό φορητότητας. Παρατήρηση Μηχανικής Λογισμικού Οι Παρατηρήσεις Μηχανικής Λογισμικού επισημαίνουν αρχιτεκτονικά και σχεδιαστικά ζητήματα που επηρεάζουν την κατασκευή συστημάτων λογισμικού, ιδιαίτερα για μεγάλα έργα. Παρατήρηση Εμφάνισης και Αίσθησης Οι Παρατηρήσεις Εμφάνισης και Αίσθησης επισημαίνουν συμβάσεις, που ισχύουν για τις γραφικές διεπαφές χρήστη. Αυτές οι παρατηρήσεις σας βοηθούν στη σχεδίαση ελκυστικών, φιλικών στο χρήστη γραφικών διεπαφών που συμμορφώνονται με τους κανόνες της βιομηχανίας. Ευρετήριο. Έχουμε συμπεριλάβει ένα εκτεταμένο ευρετήριο, το οποίο είναι ιδιαίτερα χρήσιμο όταν χρησιμοποιείτε το βιβλίο ως αναφορά. Η σελίδα όπου ορίζονται οι όροι επισημαίνονται με έντονη γραφή. Λογισμικό που χρησιμοποιείται στο βιβλίο Όλο το λογισμικό που θα χρειαστείτε γι αυτό το βιβλίο διατίθεται δωρεάν και μπορείτε να το λάβετε μέσω Internet. ιαβάστε την ενότητα Πριν Ξεκινήσετε που ακολουθεί τον Πρόλογο για να βρείτε συνδέσμους για κάθε λήψη. Γράψαμε τα περισσότερα παραδείγματα του βιβλίου χρησιμοποιώντας το δωρεάν εργαλείο ανάπτυξης στη Java, το Standard Edition Development Kit (JDK) 7. Για τα προγράμματα Java SE 8, χρησιμοποιήσαμε την αρχική έκδοση του OpenJDK για το JDK 8. Στο Κεφάλαιο 22, χρησιμοποιήσαμε επίσης το Netbeans IDE. Για περισσότερες πληροφορίες, ιαβάστε την ενότητα Πριν Ξεκινήσετε που ακολουθεί τον Πρόλογο. Java Fundamentals: Parts I, II, III και IV LiveLessons, Second Edition, Video Training Product Η εκπαιδευτική σειρά βίντεο Java Fundamentals: Parts I, II, III και IV LiveLessons, 2/e (καλοκαίρι 2014) σας δείχνει όλα όσα πρέπει να γνωρίζετε για να ξεκινήσετε να κατασκευάζετε ανθεκτικό, δυνατό λογισμικό με τη Java. Περιλαμβάνει περισσότερες από 30 ώρες εκπαίδευσης από ειδικούς σε συντονισμό με το βιβλίο. Επισκεφτείτε τη σελίδα: για πληροφορίες σχετικά με την αγορά του προϊόντος μέσω Internet από την Informit και την Udemy. Μπορείτε επίσης να προσπελάσετε τα βίντεο LiveLessons αν διατηρείτε συνδρομή στο Safari Books Online (

29 ΠΡΟΛΟΓΟΣ xxxiii Ευχαριστίες Θα θέλαμε να ευχαριστήσουμε τους Abbey Deitel και Barbara Deitel για τις πολλές ώρες που αφιέρωσαν σ αυτό το έργο. Η Abbey έγραψε μαζί μας το Κεφάλαιο 1 και αυτόν τον Πρόλογο κι αυτή και η Barbara εξερεύνησαν διεξοδικά τις νέες δυνατότητες της Java SE 8. Είμαστε ευτυχείς που συνεργαστήκαμε με την αφοσιωμένη ομάδα των επαγγελματιών στις εκδόσεις Prentice Hall/Pearson. Εκτιμούμε τις εξαιρετικές προσπάθειες και την καθοδήγηση του φίλου και συναδέλφου για 19 χρόνια, Mark L. Taub, προϊστάμενου εκδόσεων στην Pearson Technology Group. Η Carole Snyder έκανε θαυμάσια δουλειά στην επιμέλεια του βιβλίου. Η Chuti Prasertsith σχεδίασε το εξώφυλλο με δημιουργικότητα και ακρίβεια. Ο John Fuller ήταν καταπληκτικός στη διεύθυνση της παραγωγής του βιβλίου. Επιμελητές Θα θέλαμε να αναγνωρίσουμε τις προσπάθειες των επιμελητών μας, οι οποίοι μέσα σε αυστηρές προθεσμίες κατάφεραν να εξετάσουν διεξοδικά το κείμενο και τα προγράμματα και παρείχαν αμέτρητες προτάσεις βελτίωσης της παρουσίασης. Επιμελητές της τρίτης έκδοσης: Lance Andersen (Oracle Corporation), Dr. Danny Coward (Oracle Corporation), Brian Goetz (Oracle Corporation), Evan Golub (University of Maryland), Dr. Huiwei Guan (Professor, Department of Computer & Information Science, North Shore Community College), Manfred Riem (Java Champion), Simon Ritter (Oracle Corporation), Robert C. Seacord (CERT, Software Engineering Institute, Carnegie Mellon University), Khallai Taylor (Assistant Professor, Triton College και Adjunct Professor, Lonestar College Kingwood), Jorge Vargas (Yumbling και Java Champion), Johan Vos (LodgON και Oracle Java Champion) και James ΙΒ. Weaver (Oracle Corporation και συγγραφέας του Pro JavaFX 2). Επιμελητές άλλων πρόσφατων εκδόσεων: Soundararajan Angusamy (Sun Microsystems), Joseph Bowbeer (Consultant), William E. Duncan (Louisiana State University), Diana Franklin (University of California, Santa Barbara), Edward F. Gehringer (North Carolina State University), Ric Heishman (George Mason University), Dr. Heinz Kabutz (JavaSpecialists.eu), Patty Kraft (San Diego State University), Lawrence Premkumar (Sun Microsystems), Tim Margush (University of Akron), Sue McFarland Metzger (Villanova University), Shyamal Mitra (The University of Texas at Austin), Peter Pilgrim (Consultant), Manjeet Rege, Ph.D. (Rochester Institute of Technology), Susan Rodger (Duke University), Amr Sabry (Indiana University), Josι Antonio Gonzαlez Seco (Parliament of Andalusia), Sang Shin (Sun Microsystems), S. Sivakumar (Astra Infotech Private Limited), Raghavan Rags Srinivas (Intuit), Monica Sweat (Georgia Tech), Vinod Varma (Astra Infotech Private Limited) και Alexander Zuev (Sun Microsystems). Ειδικές ευχαριστίες στον Brian Goetz Είμαστε ευγνώμονες που ο Brian Goetz, Αρχιτέκτονας της γλώσσας Java στην Oracle και επικεφαλής προδιαγραφών του προγράμματος Project Lambda της Java SE 8 και συγγραφέας του βιβλίου Java Concurrency in Practice, επιμελήθηκε το βιβλίο. Εξέτασε διεξοδικά κάθε κεφάλαιο, παρέχοντας εξαιρετικά χρήσιμες γνώσεις και δημιουργικά σχόλια. Τα λάθη που πιθανώς να υπάρχουν είναι εξ ολοκλήρου δικά μας.

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 Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου

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

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 Science Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής

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

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

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

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

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

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

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

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

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

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

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

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

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

HTML5, CSS και JavaScript

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

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

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

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

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

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

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

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

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

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

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

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

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 - Τηλ.:

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

Acrobat 9. Adobe. Βήμα προς Βήμα. Εκδόσεις: Μ. Γκιούρδας. Απόδοση: Μαίρη Γκλα βά

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

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

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

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

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

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

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

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

Adobe Dreamweaver CS3

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

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

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

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

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

JOOMLA! Οπτικός Οδηγός τoυ Ελληνικού. Εκδόσεις: Μ. Γκιούρδας MARNI DERR TANYA SYMES. εύτερη έκδοση. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού

JOOMLA! Οπτικός Οδηγός τoυ Ελληνικού. Εκδόσεις: Μ. Γκιούρδας MARNI DERR TANYA SYMES. εύτερη έκδοση. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Οπτικός Οδηγός τoυ Ελληνικού JOOMLA! εύτερη έκδοση MARNI DERR TANYA SYMES Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2012

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

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 - Τηλ.:

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

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

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

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

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 00_JAVA_DEITEL(arxika).indd i 10/3/2010 1:10:55 μμ 00_JAVA_DEITEL(arxika).indd ii 10/3/2010 1:10:55 μμ Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΟΓ ΟΗ ΕΚ ΟΣΗ Paul Deitel Deitel & Associates, Inc. Harvey

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρόλογος... 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 Εξοικείωση με το περιβάλλον

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

Certified Java Programmer (CJP)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Adobe Premiere Pro CS6

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

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΑ. 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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ημιουργία Παρουσιάσεων με τη βοήθεια του PowerPoint

ημιουργία Παρουσιάσεων με τη βοήθεια του PowerPoint TEXNOΛΟΓΙΚΟ EΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Τομέας Αρχιτεκτονικής Η/Υ & Βιομηχανικών Εφαρμογών Μάθημα: «EIΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ - ΕΡΓΑΣΤΗΡΙΟ»

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

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

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

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

Standard Template Library (STL) C++ library

Standard Template Library (STL) C++ library Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων

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

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

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

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

ΧΡΗΣΗ Η/Υ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ

ΧΡΗΣΗ Η/Υ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ ΧΡΗΣΗ Η/Υ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ 1. ΠΕΡΙΒΑΛΛΟΝ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ 1.1. Βασικές Λειτουργίες και Ρυθµίσεις 1.1.1 Εκκίνηση, Τερµατισµός, Επανεκκίνηση του Η/Υ ακολουθώντας τις κατάλληλες διαδικασίες 1.1.2

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

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

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

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

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

Περιεχόμενα. Περιεχόμενα Περιεχόμενα 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 Εκφράσεις...

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

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

Certified Data Base Designer (CDBD)

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

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

Υπολογιστικά Φύλλα Microsoft Excel 2016 Level I

Υπολογιστικά Φύλλα Microsoft Excel 2016 Level I Υπολογιστικά Φύλλα Microsoft Excel 2016 Level I 1. Εισαγωγή 1.1. Δυνατότητες και χαρακτηριστικά του προγράμματος 1.2. Τρόποι ενεργοποίησης του προγράμματος 1.3. Περιγραφή του βασικού παραθύρου Ορολογία

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

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

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

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

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

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

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

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

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

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

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Αντικειμενοστρεφής Προγραμματισμός Η/Υ Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος Το κείμενο αυτό γράφεται με σκοπό να βοηθήσει τους φοιτητές του μαθήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Περιεχόμενα. Προλεγόμενα... ix Κεφάλαιο 1 Εισαγωγή Κεφάλαιο 2 Δεδομένα και εκφράσεις Κεφάλαιο 3 Λογικές συνθήκες και δομές ελέγχου... Προλεγόμενα... ix Κεφάλαιο 1 Εισαγωγή... 1 1.1 Εισαγωγικά στοιχεία για τους υπολογιστές 2 1.2 Αλγόριθμοι, προγράμματα, προγραμματισμός 16 1.3 Η Python 25 1.4 Ο διερμηνευτής της Python 28 1.5 Το περιβάλλον

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

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

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

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

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εργαλεία CASE Computer Assisted Systems Engineering Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2011-2012 1 Εργαλεία CASE

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

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

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

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

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

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

Τα 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

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

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

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

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

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

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

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

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

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

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

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13 Περιεχόμενα Πρόλογος... 5 Κεφάλαιο 1. Βασικά Στοιχεία της Java.... 13 Τύποι Δεδομένων, Μεταβλητές και Πίνακες... 13 Τελεστές και Δομές Επιλογής Επανάληψης... 16 Κλάσεις και Μέθοδοι... 21 Πακέτα και Διασυνδέσεις...

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. 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 Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

Flash Catalyst ΤΜ CS5

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

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

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

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

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

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

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

Από τη UML στον Κώδικα. Μέρος Α

Από τη UML στον Κώδικα. Μέρος Α Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον

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