Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου



Σχετικά έγγραφα
ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

Βασίλειος Κοντογιάννης ΠΕ19

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java

Κεφάλαιο 2: Μεταφραστές

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Λειτουργικά Συστήματα. Εισαγωγή

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

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

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

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

6. Εισαγωγή στον προγραµµατισµό

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

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

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( )

05β Η ιδεατή μηχανή της Java

03 Η ιδεατή μηχανή της Java

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

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

Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Η ιδεατή μηχανή της Java

Ευφυείς Τεχνολογίες ----Πράκτορες

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

6. 1 Η έννοια του προγράμματος

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

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

Προγραμματισμός Η/Υ. 1 η ενότητα: Εισαγωγή στις γλώσσες προγραμματισμού. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Κεφάλαιο 1: Εισαγωγή. 1.1 Οι γλώσσες προγραμματισμού

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

Η γλώσσα προγραμματισμού C

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

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Δημιουργία προγραμμάτων Java

Μαλούτα Θεανώ Σελίδα 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

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

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

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 2 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

Εισαγωγή Συμβόλαιο Μαθήματος

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Δομημένος Προγραμματισμός

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Transcript:

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Γλώσσες Προγραμματισμού - Μεταγλώττιση και Διερμηνεία -Η πλατφόρμα της JAVA Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 1

Συμβόλαιο Μαθήματος Επίπεδο: Προπτυχιακό Πίστωση: 7.5 μονάδες ECTS Προαπαιτούμενα: ΕΠΛ132 (Αρχές Προγραμματισμού ΙΙ) ΕΠΛ231 (Δομές Δεδομένων και Αλγόριθμοι) Μέθοδοι Διδασκαλίας Διαλέξεις (3 ώρες εβδομαδιαίως): Παράδοση Διδασ. Ύλης Εργαστήριο (1,5 ώρες εβδομαδιαίως): Πρακτική Εξάσκηση ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 2

Συμβόλαιο Μαθήματος Αξιολόγηση 50% Τελική Εξέταση(1) 30% Ενδιάμεση Εξέταση(1) Ημερ.: Δευτέρα, 22 Οκτωβρίου 2012 (8 η Εβδ.) 20% Ασκήσεις(5 συνολικά) Προγραμματιστικές, Θεωρητικές ή συνδυασμός ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 3

Βιβλιογραφία Βασική Βιβλιογραφία Thinking in Java by Bruce Eckel, 4th edition. (Prentice Hall, 2006) Βοηθητική Βιβλιογραφία Σημειώσεις Μαθήματος και Συνοδευτικό Υλικό "Introduction to Programming in Java." Robert Sedgewickand Kevin Wayne, Addείναιon Wesley, 2006. "Eclipse in Action. A guide for Java developers." David Gallardo, Ed Burnette, Robert McGovern. Manning, 2003 "Απόλυτη JAVA" του W. Savitch(μετάφραση Δ. Ιακωβίδη, Εκδόσεις Ίων, 2008). ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 4

Ιστοσελίδα Μαθήματος http://www.cs.ucy.ac.cy/courses/epl233/ ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 5

Στόχοι Μαθήματος Κατανόηση των θεμελιωδών αρχών του αντικειμενοστρεφηπρογραμματισμού και την υλοποίησή τους σε λογισμικό. Ανάπτυξη ικανότητας επινόησης αντικειμενοστρεφώνλύσεων σε υπολογιστικά προβλήματα περιγεγραμμένα σε φυσική γλώσσα, χρησιμοποιώντας τεχνικές αντικειμενοστρεφησχεδιασμού. Περιγραφή του σχεδίου της λύσης ενός προβλήματος με αντικειμενοστρεφή τρόπο, κάνοντας χρήση διαγραμμάτων UML. Εξοικείωση με το συντακτικό, την σημασιολογία και τα εγχειρίδια του Application ProgrammingInterface, API, της JAVA. Δυνατότητα επίλυσης προβλημάτων με τη JAVA. Ευχέρεια ανάπτυξης, τεκμηρίωσης, ελέγχου και αποσφαλμάτωσης προγραμμάτων JAVA για την αποδοτική υλοποίηση αλγορίθμων. Δεξιότητες επίλυσης πολύπλοκων υπολογιστικών προβλημάτων με χρήση του αντικειμενοστρεφη προγραμματισμού. Εξοικείωση με τη χρήση του περιβάλλοντος ανάπτυξης Eclipse. Αποτελεσματική επικοινωνία για τα πορίσματα της εργασίας του (αντικειμενοστρεφή σχέδια, προγράμματα JAVA) με άλλους προγραμματιστές. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 6

Προγράμματα Τα προγράμματα (software), είναι βασικά ένα σύνολο από οδηγίες στον υπολογιστή. Χωρίς τα προγράμματα ο υπολογιστής είναι μία άδεια μηχανή. Δεδομένου ότι ο υπολογιστής δεν καταλαβαίνει την φυσική γλώσσα αλλά μόνο την γλώσσα μηχανής (machine language), χρειαζόμαστε κάποιες ειδικές γλώσσες (γλώσσες προγραμματισμού) για να επικοινωνήσουμε μαζί του. Παραδείγματα γλωσσών προγραμματισμού: C, C++, JAVA, C#, Visual Basic, Fortran, κ.τ.λ. ΠΑΡΑΔΕΙΓΜΑ ΠΡΟΓΡΑΜΜΑΤΟΣ σε JAVA public class HelloWorld{ public static void main(string[] args){ System.out.println("Hello World!!!"); } } ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 7

Γλώσσες Προγραμματισμού Πρώτης Γενιάς Τα προγράμματα αποστέλλονταν απευθείας στον υπολογιστή με τη χρήση μοχλών και διακοπτών! Δεύτερης Γενιάς Γλώσσες προγραμματισμού assembly Η γλώσσα είναι ειδικευμένη σύμφωνα με επεξεργαστή και περιβάλλον Η/Υ. Τρίτης Γενιάς Πιο κοντά στην ανθρώπινη γλώσσα Υψηλού Επιπέδου Πιο εύκολη γραφή, ενημέρωση, συντήρηση Πρέπει να μεταφραστούν για να τρέξουν από ένα μεταγλωττιστή ή διερμηνέα Παραδείγματα: C, C++, COBOL, Pascal, Basic, JAVA Τέταρτης Γενιάς Μειώνει τον φόρτο εργασίας της ανάπτυξης προσφέροντας εργαλεία και αυτοματισμούς Μεγαλύτερη αφαιρετικότητα ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 8

Μεταγλωττιστές vs. Διερμηνείς Μεταγλωττιστές (compilers):προγράμματα που μετασχηματίζουν εντολές μιας γλώσσας προγραμματισμού σε οδηγίες (εντολές) στη γλώσσα μηχανής μιας συγκεκριμένης αρχιτεκτονικής. Απαιτείται μεγαλύτερη προσπάθεια κατά τον μετασχηματισμό Μεγαλύτερες δυνατότητες για βελτιστοποιήσεις του τελικού κώδικα Το τελικό πρόγραμμα είναι βελτιστοποιημένο για την μηχανή Πηγαίος Κώδικας προ-επεξεργασία Διερμηνείς (interpreters):δημιουργεί ένα ενδιάμεσο κώδικα ο οποίος μπορεί να εκτελεστεί σε διάφορες μηχανές Πιο σύντομος χρόνος προ-επεξεργασίας Εκτελέσιμος Κώδικας επεξεργασία Μηχανή Περιορισμένες δυνατότητες βελτιστοποιήσης πιο αργό πρόγραμμα Πηγαίος Κώδικας Ενδιάμεσος Κώδικας προ-επεξεργασία επεξεργασία Διερμηνευτής ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 9

Τυπικός Κύκλος Ζωής ενός Προγράμματος JAVA ΠΑΡΑΔΕΙΓΜΑ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ public class HelloWorld{ public static void main(string[] args){ System.out.println("Hello World!!!"); } } Δημιουργία/Ενημέρωση Πηγαίου Κώδικα Πηγαίος Κώδικας (Αποθήκευση στον δίσκο) Μεταγλώττιση Πηγαίου Κώδικα Σε περίπτωση προβλημάτων μεταγλώττισης ΠΑΡΑΔΕΙΓΜΑ BYTE CODE Method HelloWorld() 0 aload_0 Method void main(java.lang.string[]){ 0 getstatic #2 3 ldc #3 < String "Hello World!!!" > 5 invokevirtual #4 ByteCode (Αποθήκευση στον δίσκο) Εκτέλεση Bytecode Σε περίπτωση λάθος αποτελέσματος Αποτέλεσμα ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 10

Η γλώσσα προγραμματισμού JAVA Γλώσσα Προγραμματισμού 3 ης Γενιάς Δημιουργήθηκε το 1991αποτην GreenTeam της SunMicrosystems. Επίσημη ανακοίνωση της Γ.Π. το 1995. Ο στόχος ήταν ο εύκολος προγραμματισμός ηλεκτρονικών συσκευών και συστημάτων για ευρεία κατανάλωση. Περισσότερες πληροφορίες στην http://www.java.com/en/javahείναιtory/ Βασισμένη στη C και C++ αλλά με σημαντικές αλλαγές και βελτιώσεις. Επιτρέπει στους χρήστες να αναπτύσσουν εφαρμογές για διαδίκτυο, εξυπηρετητές, υπολογιστές και κινητές συσκευές είναι γλώσσα προγραμματισμού γενικού σκοπού ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 11

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Multi-threaded Δυναμική Η JAVA έχει μοντελοποιηθεί σύμφωνα με την C και C++ αλλά αντιθέτως με την C++ η JAVA δεν έχει header files, pointer arithmetic, pointer syntax, structures, unions, operator overloading, virtual base classes, κ.α.) Μερικοί αναφέρονται στην Java σαν"c++--" γιατί είναι παρόμοια με την C++ αλλά με περισσότερη λειτουργικότητα και λιγότερα αρνητικά σημεία. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 12

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Multi-threaded Δυναμική Η JAVA έχει σχεδιαστεί από την αρχή για να είναι αντικειμενοστρεφή αντίθετα με άλλες γλώσσες. Ο αντικειμενοστρεφής προγραμματισμός (Object-Oriented Programming (OOP))είναι δημοφιλής και όλο και ένα αντικαθιστά τις παραδοσιακές διαδικαστικές τεχνικές. Ένα κύριο θέμα του OOP είναι πώς να επαναχρησιμοποιείται ο κώδικας. Παρέχει μεγαλύτερη ευελιξία, σπονδυλωτή οργάνωση μέσω τεχνικών όπως πολυμορφισμός και κληρονομικότητα. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 13

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Multi-threaded Δυναμική Η JAVA έχει σχεδιαστεί ώστε να υποστηρίζει εύκολα την επικοινωνία μεταξύ δικτυωμένων προγραμμάτων/υπολογιστών. Δεδομένου ότι η λειτουργικότητα επικοινωνίας είναι εμπεδωμένα στην JAVA, η επικοινωνία μεταξύ δικτυωμένων προγραμμάτων είναι παρόμοια με προγράμματα που γράφουν και διαβάζουν από αρχεία. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 14

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Multi-threaded Δυναμική Χρειάζεται διερμηνέας για να τρέξει ένα JAVA πρόγραμμα. Τα προγράμματα μεταγλωττίζονται πρώτα σε κώδικα τύπου Java Virtual Machine (bytecode). Το bytecode είναι ανεξάρτητο μηχανής και μπορεί να τρέξει σε οποιαδήποτε μηχανή που έχει διερμηνέα Java (interpreter). Σημειώστε ότι ο διερμηνέας είναι μέρος της Java Virtual Machine (JVM). ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 15

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Multi-threaded Δυναμική Οι JAVA μεταγλωττιστές αναγνωρίζουν διάφορα προβλήματα που άλλες γλώσσες τα αναγνωρίζουν μετά την εκτέλεση. Έχει καλύτερο έλεγχο τύπων και προγραμματιστικών δομών. Έχει έλεγχο εξαιρέσεων για να εξασφαλίσει μεγαλύτερο βαθμό ευρωστίας. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 16

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Πολύ-νηματική Δυναμική ΗJAVA υποστηρίζει διάφορους μηχανισμούς ασφάλειας που προστατεύουν το πρόγραμμα και το σύστημα από ανεπιθύμητους επισκέπτες. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 17

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Πολύ-νηματική Δυναμική Ένα γνωστό μότο της JAVA είναι Write once, run anywhere Ένα JAVA πρόγραμμα μπορεί να τρέξει οπουδήποτε υπάρχει Java Virtual Machine (JVM)! ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 18

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Πολύ-νηματική Δυναμική Ένα JAVA πρόγραμμα δεν χρειάζεται να επαναμεταγλωττιστεί για να τρέξει! ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 19

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Πολύ-νηματική Δυναμική Ο πολύ-νηματικός προγραμματισμός (multithread programming)είναι εμπεδωμένος μέσα στους κύριους μηχανισμούς της JAVA. Δεν χρειάζονται ρυθμίσεις και ειδικά καλέσματα στο λειτουργικό για να τρέξουν πολύ-νηματικά προγράμματα. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 20

Τα χαρακτηριστικά της JAVA Η JAVA είναι: Απλή Αντικειμενοστρεφής Κατανεμημένη Interpreted Εύρωστη Ασφαλής Ουδέτερη Αρχιτεκτονικής Φορητή Πολύ-νηματική Δυναμική Η JAVA έχει σχεδιαστεί ώστε να προσαρμόζεται σε ένα δυναμικό και εξελισσόμενο περιβάλλον. Καινούριος κώδικας μπορεί να φορτωθεί χωρίς να χρειάζεται επανα-μεταγλώττιση. Ως αποτέλεσμα οι χρήστες δεν χρειάζονται να εγκαταστήσουν καινούριες εκδόσεις λογισμικού κάθε φορά που υπάρχει αλλαγή. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 21

Η πλατφόρμα της JAVA Πλατφόρμα: Περιβάλλον λογισμικού και υλικού στο οποίο εκτελείται ένα πρόγραμμα. Συνήθως είναι συνδυασμός του Λειτουργικού Συστήματος και του Υλικού Υποστρώματος του ΛΣ. Δημοφιλείς πλατφόρμες: Microsoft Windows, Linux, SolarisOS, MacOS. Πλατφόρμα Java: Σύστημα λογισμικού που τρέχει πάνω σε διάφορες πλατφόρμες υλικού. Αποτελείται από: Την Εικονική Μηχανή JAVA: Java Virtual Machine Την Προγραμματιστική Διαπροσωπεία Εφαρμογών της JAVA (Java Application Programming Interface- API) Περιβάλλον Μεταγλώττισης Πλατφόρµα JAVA Πηγαίος Κώδικας(.java) Compiler (javac.exe) Java Bytecode(.class) Class loader and Bytecode verifier Java Class Library The Java Virtual Machine Java Interpreter (java.exe) Run Time System Just-in-time compiler Operating System Hardware ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 22

Βασικά εργαλεία της πλατφόρμας Java Εργαλεία Ανάπτυξης Λογισμικού: μεταγλώττιση (compiling), εκτέλεση (running), παρακολούθηση (monitoring), αποσφαλμάτωση (debugging), τεκμηρίωση (documentation): javac, java launcher, javadoc. Java API Τεχνολογίες Εγκατάστασης Λογισμικού (Deployment Technologies): Java Web Start, Java Plug-In. Εργαλεία Γραφικών Διαπροσωπειών(GUI Toolkits): Swing and JFX. Τεχνολογίες Ολοκλήρωσης:JDBC API, Java Naming and Directory Interface API (LDAP, NDS, DNS, and NIS), Java Remote Method Invocation ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 23

Ενσωματωμένο Περιβάλλον Ανάπτυξης(IDE) Ένα Ενσωματωμένο Περιβάλλον Ανάπτυξης (Integrated Development Environment (IDE)) συνήθως περιλαμβάνει: Ένα συντάκτη πηγαίου κώδικα (π.χ., Notepad) Εργαλεία αυτοματοποίησης (π.χ., αυτόματη μεταγλώττιση κώδικά, παρουσίαση συντακτικών λαθών) Ένα ελεγκτή/παρατηρητή (debugger) Παράδειγμα Eclipse IDE ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 24