Μια Γεύση από Java
Free!
With Membership
$7.99
Minimum paid price

Μια Γεύση από Java

About the Book

Η γλώσσα προγραμματισμού Java είναι σήμερα από τις πιο δημοφιλής.  Η εκμάθηση της  συχνά στηρίζεται σε βιβλία τα οποία είναι πολύ μεγάλα σε έκταση κάτι που ίσως δεν είναι ελκυστικό για μια πρώτη επαφή με τη γλώσσα.  Το παρόν βιβλίο είναι ένα σύντομο εγχειρίδιο της Java το οποίο έχει σκοπό να δώσει στον αναγνώστη μια γεύση της γλώσσας, δηλαδή να περιγράψει τα πιο σημαντικά της στοιχεία,  σύντομα και περιεκτικά (αρκεί ίσως ένα απόγευμα μελέτης). Το βιβλίο συστήνεται σε εκείνους που δεν έχουν καμία γνώση της γλώσσας αλλά θα ήθελαν γρήγορα να μπουν στην ουσία.  Το βιβλίο περιλαμβάνει και παράδειγμα ανάπτυξης εφαρμογών Android με χρήση της Java.

Για τους φοιτητές σχετικών μαθημάτων της τριτοβάθμιας εκπαίδευσης στην πληροφορική, το παρόν βιβλίο προτείνεται ως ανάγνωσμα για τις πρώτες δύο εβδομάδες του εξαμήνου,  ευελπιστώντας ότι η ανάγνωσή του  θα τους βοηθήσει να «εγκλιματιστούν» πιο γρήγορα και να πάρουν μια γεύση για τα θέματα με τα οποία θα καταπιαστούν (με αναλυτικότερο τρόπο) κατά τη διάρκεια του εξαμήνου. Το βιβλίο έχει λειτουργήσει επικουρικά στις διδασκαλίες σχετικού μαθήματος στο Τμήμα Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης από το 2009. 

Το βιβλίο σε καμία περίπτωση δεν υποκαθιστά τους διαθέσιμους διαδικτυακούς πόρους για τη γλώσσα Java, ούτε τα αναλυτικά βιβλία για την εκμάθησή της.

ISBN 978-960-93-8505-3

About the Author

Yannis Tzitzikas
Yannis Tzitzikas

O Γιάννης Τζίτζικας είναι Αναπληρωτής Καθηγητής στο Τμήμα Επιστήμης Υπολογιστών του Πανεπιστημίου Κρήτης και Συνεργαζόμενος Ερευνητής στο Ίδρυμα Τεχνολογίας και Έρευνας (στο Εργαστήριο Πληροφοριακών Συστημάτων του Ινστιτούτου Πληροφορικής). 

Ερευνητικά δραστηριοποιείται στις περιοχές των Πληροφοριακών Συστημάτων, της  Ευρετηρίασης και Ανάκτησης Πληροφοριών, και της Σημασιολογικής Διαχείρισης Δεδομένων. Τα  αποτελέσματα της έρευνας του έχουν δημοσιευτεί σε  περισσότερα από 100 συνέδρια και περιοδικά με κρίση περιεχομένου. Έχει διδάξει το μάθημα Αντικειμενοστρεφής Προγραμματισμός (με Java) για αρκετά εξάμηνα και χρησιμοποιεί την γλώσσα Java σε ερευνητικά πρωτότυπα που σχεδιάζει και υλοποιεί με τους φοιτητές και τους συνεργάτες του.

Table of Contents

ΜΙΑ ΓΕΥΣΗ ΑΠΟ … JAVA 1

1 ΠΡΟΛΟΓΟΣ 7

1.1 ΣΚΟΠΟΣ ΚΑΙ ΡΟΛΟΣ ΤΟΥ ΒΙΒΛΙΟΥ 7

1.2 ΤΟ ΙΣΤΟΡΙΚΟ ΚΑΙ ΤΟ ΜΕΛΛΟΝ ΤΟΥ ΒΙΒΛΙΟΥ 7

1.3 ΕΥΧΑΡΙΣΤΙΕΣ 8

1.4 ΛΙΓΑ ΛΟΓΙΑ ΓΙΑ ΤΟΝ ΣΥΓΓΡΑΦΕΑ 8

2 ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ 9

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

3.1 H ΒΙΒΛΙΟΘΗΚΗ ΤΗΣ JAVA (JAVA API) 10

3.2 ΤΟ IDE ECLIPSE 11

3.2.1 ΤΟ ΠΕΡΙΒΑΛΛΟΝ 11

3.2.2 ΝΕΟ ΕΡΓΟ 12

3.2.3 ΝΕΑ ΚΛΑΣΗ 13

3.2.4 ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ 14

3.2.5 ΕΚΤΕΛΕΣΗ ΕΦΑΡΜΟΓΗΣ 16

3.2.6 ΕΙΣΑΓΩΓΗ ΕΡΓΟΥ 16

3.2.7 ΠΛΗΡΟΦΟΡΙΕΣ 17

4 ΤΑ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΗΣ JAVA 17

4.1 ΣΧΟΛΙΑ 17

4.2 ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ 18

4.3 ΔΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ 18

4.4 ΔΗΛΩΣΗ ΣΤΑΘΕΡΩΝ 19

4.5 ΠΙΝΑΚΕΣ 19

4.6 ΤΕΛΕΣΤΕΣ 19

5 ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ 20

5.1 ΔΟΜΕΣ ΕΛΕΓΧΟΥ 20

5.1.1 IF ELSE 20

5.1.2 SWITCH 21

5.2 ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ 22

5.2.1 WHILE 22

5.2.2 DO WHILE 22

5.2.3 FOR 22 4

 

6 ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ 23

6.1 ΜΕΘΟΔΟΙ 24

6.2 ΚΛΗΣΗ ΜΕΘΟΔΩΝ ΚΑΙ ΠΕΡΑΣΜΑ ΠΑΡΑΜΕΤΡΩΝ 27

7 ΟΡΓΑΝΩΣΗ ΚΛΑΣΕΩΝ 29

7.1 ΠΑΚΕΤΑ 29

7.2 ΠΕΡΙΟΡΙΣΜΟΙ ΠΡΟΣΠΕΛΑΣΗΣ 30

7.3 ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (INHERITANCE) 32

7.4 ΔΙΕΠΑΦΕΣ (INTERFACES) 36

7.5 ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ 39

7.6 ΠΟΛΥΜΟΡΦΙΣΜΟΣ (POLYMORPHISM) 40

7.6.1 ΥΠΕΡΦΟΡΤΩΣΗ (OVERLOADING) 40

7.6.2 ΥΠΟΣΚΕΛΙΣΜΟΣ (OVERRIDING) 41

7.6.3 ΥΠΟΣΚΕΛΙΣΜΟΣ (OVERRIDING) ΚΑΙ ΕΠΙΣΚΙΑΣΗ (SHADOWING) 42

7.7 ΕΝΘΥΛΑΚΩΣΗ (ENCAPSULATION) 43

7.8 ΕΡΩΤΗΜΑΤΑ ΚΑΤΑΝΟΗΣΗΣ 44

8 ΣΥΜΒΟΛΟΣΕΙΡΕΣ (STRINGS) 45

9 ΕΞΑΙΡΕΣΕΙΣ (EXCEPTIONS) 46

10 ADTS (ABSTRACT DATA TYPES) 50

10.1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΑΣΙΣΜΕΝΟΣ ΣΕ ΣΥΜΒΟΛΑΙΑ (CONTRACT-BASED PROGRAMMING) 51

10.2 ΣΥΜΒΟΛΑΙΑ ΚΑΙ ΕΞΕΙΔΙΚΕΥΣΗ 52

11 ΔΙΑΧΕΙΡΙΣΗ ΣΥΛΛΟΓΩΝ ΜΕ ΤΟ JAVA COLLECTION FRAMEWORK 54

11.1 ΣΥΓΚΡΙΣΗ ΚΑΙ ΤΑΞΙΝΟΜΗΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ 57

12 ΑΡΧΕΙΑ (FILE) 59

13 ΠΑΡΑΜΕΤΡΙΚΟΙ ΤΥΠΟΙ (GENERICS) 60

14 ΕΜΦΩΛΕΥΜΕΝΕΣ Η ΕΣΩΤΕΡΙΚΕΣ ΚΛΑΣΕΙΣ (INNER CLASSES) 61

15 ΣΤΟΧΑΣΜΟΣ (REFLECTION) 63

16 ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ ΜΕ ΤΟ SWING 64

16.1 Η ΚΛΑΣΗ COMPONENT 65

16.2 ΥΠΟΔΟΧΕΙΣ-ΠΛΑΙΣΙΑ (JFRAMES) 66

16.3 ΣΥΣΤΑΤΙΚΑ (COMPONENTS) 67

16.4 ΔΙΑΤΑΞΗ ΣΥΣΤΑΤΙΚΩΝ (LAYOUTS) 69 5

 

16.5 ΤΑΜΠΛΟ/ΤΟΜΕΙΣ (JPANEL) 72

16.6 ΑΚΡΟΑΤΕΣ ΣΥΜΒΑΝΤΩΝ (ACTION LISTENERS) 72

16.7 ΜΙΚΡΟΕΦΑΡΜΟΓΕΣ (APPLETS) ΤΗΣ JAVA 73

17 ΠΟΛΥΝΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 75

18 ΤΑ ΝΕΑ ΣΤΟΙΧΕΙΑ ΤΗΣ JAVA 8 77

18.1 ΔΙΕΠΑΦΕΣ 77

18.2 ΣΥΝΑΡΤΗΣΙΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 79

18.3 ΛΑΜΔΑ ΕΚΦΡΑΣΕΙΣ: ΕΙΣΑΓΩΓΗ 79

18.4 DEFAULT ΜΕΘΟΔΟΙ ΤΗΣ ΒΙΒΛΙΟΘΗΚΗΣ 81

18.4.1 ΤΑΞΙΝΟΜΗΣΗ 82

18.4.2 ΑΚΡΟΑΤΕΣ ΣΥΜΒΑΝΤΩΝ 82

18.5 ΑΝΑΦΟΡΕΣ ΣΥΝΑΡΤΗΣΕΩΝ 82

18.6 ΠΡΟΚΑΘΟΡΙΣΜΕΝΕΣ ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΔΙΕΠΑΦΕΣ ΤΟΥ JAVA.UTIL.FUNCTIONS 83

18.7 ΡΟΕΣ (STREAMS) 83

18.7.1 ΠΑΡΑΛΛΗΛΙΑ 87

18.7.2 ΕΠΙΛΟΓΟΣ ΓΙΑ ΡΟΕΣ 88

19 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ANDROID 88

19.1 ΕΙΣΑΓΩΓΗ 88

19.2 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 89

19.3 Η ΤΕΛΙΚΗ ΦΥΣΙΚΗ ΥΠΟΣΤΑΣΗ ΜΙΑΣ ΕΦΑΡΜΟΓΗΣ 91

19.4 Η ΛΟΓΙΚΗ ΔΟΜΗ ΜΙΑΣ ΕΦΑΡΜΟΓΗΣ 92

19.5 ΤΡΕΧΟΝ ΠΑΡΑΔΕΙΓΜΑ 93

19.6 ΤΟ ΑΡΧΕΙΟ ANDROIDMANIFEST.XML 94

19.7 Ο ΦΑΚΕΛΟΣ /JAVA 94

19.8 Ο ΦΑΚΕΛΟΣ /RES 95

19.9 ΤΟ ΑΡΧΕΙΟ /RES/VALUES/STRINGS.XML 96

19.10 ΤΟ ΑΡΧΕΙΟ /RES/VALUES/STYLES.XML 96

19.11 Ο ΦΑΚΕΛΟΣ /RES/DRAWABLE 97

19.12 Ο ΦΑΚΕΛΟΣ /RES/LAYOUT 98

19.13 ΤΑ ΑΡΧΕΙΑ /JAVA/*ACTIVITY.JAVA 100

20 ΑΝΤΙΚΕΙΜΕΝΟΣΤΕΦΗΣ ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ 105

20.1 ΣΚΟΠΟΣ 105

20.2 ΔΙΑΔΙΚΑΣΙΑ ΑΝΑΛΥΣΗΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΥ 105

20.3 ΔΙΑΓΡΑΜΜΑΤΙΚΗ ΓΛΩΣΣΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ 105

20.4 ΣΥΓΚΕΚΡΙΜΕΝΟ ΠΑΡΑΔΕΙΓΜΑ 106

20.4.1 (Ι) ΣΤΟΧΟΙ ΚΑΙ ΠΡΟΣΔΟΚΙΕΣ ΠΕΛΑΤΗ 106

20.4.2 (ΙΙ) ΔΙΑΓΡΑΜΜΑ ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ (USE CASE DIAGRAM) 106

20.4.3 (ΙΙΙ) ΜΑΚΕΤΑ ΓΡΑΦΙΚΗΣ ΔΙΕΠΑΦΗΣ ΧΡΗΣΗΣ 107

20.4.4 (IV) ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΣΤΗΜΑΤΟΣ 108

20.4.5 (V) ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ 108

20.4.6 (VI) ΑΚΟΛΟΥΘΙΑΚΑ ΔΙΑΓΡΑΜΜΑΤΑ ΚΑΙ ΔΙΑΓΡΑΜΜΑΤΑ ΚΑΤΑΣΤΑΣΕΩΝ 110

20.4.7 ΤΙ ΔΕΝ ΠΕΡΙΓΡΑΨΑΜΕ 112 6

 

21 ΘΕΜΑΤΑ ΜΗΧΑΝΟΛΟΓΙΑΣ ΤΗΣ JAVA 112

21.1 ΕΠΙΣΗΜΕΙΩΣΕΙΣ (JAVA ANNOTATIONS) 112

21.2 ΔΟΚΙΜΕΣ (TESTING) 113

21.3 ΈΝΕΣΗ ΕΞΑΡΤΗΣΕΩΝ (DEPENDENCY INJECTION) 115

21.4 ΟΙΚΟΔΟΜΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΤΩΝ ΣΧΕΤΙΚΩΝ ΕΞΑΡΤΗΣΕΩΝ (MAVEN, GRADLE) 116

21.5 ΣΥΣΤΗΜΑΤΑ ΓΙΑ ΣΥΝΕΡΓΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ, ΕΚΔΟΣΕΙΣ ΛΟΓΙΣΜΙΚΟΥ 118

22 ΕΠΙΛΟΓΟΣ 118

23 ΤΙ ΕΙΠΑΝ ΑΛΛΟΙ ΓΙΑ ΤΟ … ΒΙΒΛΙΟ 118

The Leanpub 60-day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $12 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub