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

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

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

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

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

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των 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 Τίτλος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ΓΡΗΓΟΡΑ

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

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

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

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

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

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

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

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

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

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. 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 Αλληλεπίδραση Αντικειμένων

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

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

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

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

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

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

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

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

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

Adobe Premiere Pro CS6

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

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

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

ΑΝΑΛΥΤΙΚΟ ΩΡΟΛΟΓΙΟ ΠΡΟΓΡΑΜΜΑ ΘΕΩΡΙΑΣ ΠΡΑΞΗΣ ΑΡ. ΕΓΚΡΙΤΙΚΗΣ ΑΠΟΦΑΣΗΣ ΥΠΟΕΡΓΟΥ ΚΩΔΙΚΟΙ ΤΟΠΙΚΩΝ ΑΓΟΡΩΝ ΕΡΓΑΣΙΑΣ ΤΟΥ ΝΟΜΟΥ Σ ΠΡΟΓΡ/ΤΟΣ ΑΝΑΛΥΤΙΚΟ ΩΡΟΛΟΓΙΟ ΠΡΟΓΡΑΜΜΑ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑΤΟΣ 1 2 3 4 5 6 7 8 Διαχείριση Αρχείων 06/11/2014 09:00-13:00 Εισαγωγή

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Αναλυτικός Πίνακας Περιεχομένων

Αναλυτικός Πίνακας Περιεχομένων Αναλυτικός Πίνακας Περιεχομένων 9 Αναλυτικός Πίνακας Περιεχομένων ΣΥΝΟΠΤΙΚΑ ΠΕΡΙΕΧΟΜΕΝΑ...7 ΑΝΑΛΥΤΙΚΟΣ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ...9 ΠΡΟΛΟΓΟΣ...15 1. ΕΙΣΑΓΩΓΗ ΣΤO EXCEL ΤΗΣ MICROSOFT...19 1.1. ΕΙΣΑΓΩΓΗ...20

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

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

Περιεχόμενα. Πρόλογος 11 Περιεχόμενα Πρόλογος 11 1 Εισαγωγή 19 1.1 Πριν από την ανάγνωση αυτού του βιβλίου 20 1.2 Μια θεώρηση του υπολογιστή 22 1.3 Εφαρμογές και μικροεφαρμογές Java 24 1.4 JavaScript και JSP 26 1.5 Η δομή του

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

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

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

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

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

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

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

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

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

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ Key CERT: ΥΠΟΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ Key CERT: ΥΠΟΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ ΕΞΕΤΑΣΤΕΑ ΥΛΗ Key CERT: ΥΠΟΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ Έκδοση 1.0 Σελίδα 1 από 6 ΓΝΩΣΤΙΚΟ ΑΝΤΙΚΕΙΜΕΝΟ: ΥΠΟΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ Τα ακόλουθα αποτελούν την εξεταστέα ύλη για την ενότητα Υπολογιστικά Φύλλα και θεωρούνται η

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

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

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

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

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

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

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

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

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

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

Αρχές Τεχνολογίας Λογισμικού Αρχές Τεχνολογίας Λογισμικού Επισκόπηση του μαθήματος 2 Διδάσκοντες ΘΕΩΡΙΑ Νίκος Παπαδάκης ΕΡΓΑΣΤΗΡΙΟ Αϊβαλής Κώστας costis@teicrete.gr Κονδυλάκης Χάρης kondylak@gmail.com 3 Το μάθημα στο πρόγραμμα σπουδών

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

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

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

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

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

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

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο

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

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

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

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

Certified Data Base Designer (CDBD)

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

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

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

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

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

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

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

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

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

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

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

Οδηγός του Ελληνικού ΜICROSOFT OFFICE 2010

Οδηγός του Ελληνικού ΜICROSOFT OFFICE 2010 Οδηγός του Ελληνικού ΜICROSOFT OFFICE 2010 Steve Schwartz Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2011 www.mgiurdas.gr

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

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

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

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1 Εισαγωγή... 19 Τι είναι η Java... 19 Η ιστορία της Java... 23 Εκδόσεις της Java... 25 Ξεκίνημα με την Java... 27 Το περιβάλλον της γλώσσας... 31 Δημιουργία μιας εφαρμογής

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

Βιοϊατρική τεχνολογία

Βιοϊατρική τεχνολογία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Βιοϊατρική τεχνολογία Ενότητα 5: Οξύμετρο (OxyPro Project) Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr ΕΕΔΙΠ Μπέλλου Σοφία e-mail: sbellou@uowm.gr

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

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

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

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

Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0

Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0 Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0 Πνευματικά Δικαιώματα 2007 Ίδρυμα ECDL (ECDL Foundation www.ecdl.org) Όλα τα δικαιώματα είναι κατοχυρωμένα. Κανένα μέρος αυτού του εγγράφου δεν μπορεί να αναπαραχθεί

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

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

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

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

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

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

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

Εγχειρίδιο Χρήσης Slide Recorder

Εγχειρίδιο Χρήσης Slide Recorder Εγχειρίδιο Χρήσης Slide Recorder Αναπτύχθηκε στο Κέντρο Λειτουργίας Διαχείρισης Δικτύου, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Προγραμματιστής: Γιώργος Φράγκος Περιεχόμενα Εγχειρίδιο Χρήσης Slide

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

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

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

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

Μέρος Α Περιβάλλον Εργασίας Windows... 19. Εργαστηριακή Άσκηση 1 Το Γραφικό Περιβάλλον του Υπολογιστή... 21

Μέρος Α Περιβάλλον Εργασίας Windows... 19. Εργαστηριακή Άσκηση 1 Το Γραφικό Περιβάλλον του Υπολογιστή... 21 Περιεχόμενα Μέρος Α Περιβάλλον Εργασίας Windows... 19 Εργαστηριακή Άσκηση 1 Το Γραφικό Περιβάλλον του Υπολογιστή... 21 1.1 Εκκίνηση του ηλεκτρονικού υπολογιστή... 22 1.2 Γραφικό παραθυρικό περιβάλλον εργασίας...

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11 Περιεχόμενα Πρόλογος... 11 Μέρος 1: Βασικές έννοιες της πληροφορικής... 13 1.1 Windows XP... 15 1.2 Επιφάνεια εργασίας... 19 1.3 Γραμμή εργασιών... 24 1.4 Χειρισμός παραθύρων... 30 1.5 Μενού... 36 1.6

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα...11 Πρόλογος του καθηγητή Γεωργίου Δουκίδη...13 ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15 ΚΕΦΑΛΑΙΟ 1. Η ΕΠΙΧΕΙΡΗΣΗ...17 Ορισμός της έννοιας της επιχείρησης και οι μορφές

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη 1 3 η ενότητα: Εισαγωγή στις Βάσεις Δεδομένων και στην MySQL

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

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1 Εικόνες και γραφικά Περιγραφή στατικών εικόνων Αναπαράσταση γραφικών Υλικό γραφικών Dithering και anti-aliasing Σύνθεση εικόνας Ανάλυση εικόνας Μετάδοση εικόνας Τεχνολογία Πολυµέσων 05-1 Περιγραφή στατικών

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

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα 1. Εισαγωγή 1.1 O Υπολογιστής ως εργαλείο μηχανικού 1.2 Η Επιστήμη των υπολογιστών 1.3 Ιστορικό Σημείωμα 1.4 Ο υπολογιστής μηχανή επεξεργασίας ψηφιακής πληροφορίας 1.5 Ψηφιοποίηση πληροφορίας 1.5.1 ψηφιοποίηση

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

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος xi 1 Αντικείμενα των Πιθανοτήτων και της Στατιστικής 1 1.1 Πιθανοτικά Πρότυπα και Αντικείμενο των Πιθανοτήτων, 1 1.2 Αντικείμενο της Στατιστικής, 3 1.3 Ο Ρόλος των Πιθανοτήτων

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

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

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

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