Εισαγωγή στη JAVΑ (μέρος Β’) Βασίλης Παπαταξιάρχης Μάθημα: Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα: Ιζαμπώ Καράλη Τμήμα Πληροφορικής.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Advertisements

Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Τμ.
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 9: Input / Output Εβδομάδα 8: Είσοδος / Έξοδος [Input / Output]
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
1 Εισαγωγή στα Streams Υπάρχουν πάνω από 60 κλάσεις για input/output στο πακέτο Υπάρχουν πάνω από 60 κλάσεις για input/output στο πακέτο java.io.*; java.io.*;
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Εισαγωγή στη JAVΑ (μέρος Α’)
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΗΥ-340 – Γλώσσες και Μεταφραστές Φροντιστήριο Παραγωγή τελικού κώδικα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Streams Streams: κανάλια ροής δεδομένων Κανάλια εισόδου: ανάγνωση δεδομένων Κανάλια εξόδου: αποστολή δεδομένων Συνήθεις πηγές και προορισμοί δεδομένων:
Spring 2007 Γ. Γεωργαλής, Σ. Δουμπουλάκης, Μ. Ζηδιανάκης, Θ. Μπουρδένας 1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Virtual Machine.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
Είσοδος – Έξοδος – Μορφοποιήσεις - Εξαιρέσεις στη Java Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών 1 Βελώνης Γεώργιος – Καθηγητής Πληροφορικής ΠΕ 20.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Java DataBase Connectivity
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Χώροι ονομάτων (namespaces) 1/4
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγ/μό Υπολογιστών
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Εξαιρέσεις [Exceptions]
Μεταγράφημα παρουσίασης:

Εισαγωγή στη JAVΑ (μέρος Β’) Βασίλης Παπαταξιάρχης Μάθημα: Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα: Ιζαμπώ Καράλη Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

Περισσότερα θέματα στη Java Λάθη και Εξαιρέσεις Μετατροπή Αντικειμένων Είσοδος / Έξοδος Γενικά Σχόλια Εργαλεία Ανάπτυξης

Κατά την εκτέλεση μίας μεθόδου μπορεί να προκληθούν συνθήκες απρόβλεπτες. Σε αυτές τις περιπτώσεις εμφανίζονται λάθη (errors) και εξαιρέσεις (exceptions) Η Java επιτρέπει αυτόματο χειρισμό τέτοιων λαθών (automated exception handling) Ένα αντικείμενο της κλάσης Error δημιουργείται λόγω «σημαντικών» λαθών που δεν δύναται να αντιμετωπιστούν στα πλαίσια ενός προγράμματος Λάθη και Εξαιρέσεις πακέτο java.lang Π.χ. NoClassDefFoundError (για παράδειγμα στην περίπτωση που έχουν οριστεί λάθος κατάλογοι στη μεταβλητή περιβάλλοντος CLASSPATH)

Μία εξαίρεση είναι οποιοδήποτε γεγονός διαταράσσει την ομαλή εκτέλεση ενός προγράμματος Η μέθοδος στην οποία προκαλείται το σφάλμα δημιουργεί ένα exception object, το οποίο περιέχει πληροφορίες για το σφάλμα που προκλήθηκε και καλούμαστε να το διαχειριστούμε runtime. Το σύστημα ελέγχει τη στοίβα κλήσης συναρτήσεων με σκοπό να βρει κώδικα που να κάνει handle το exception που προέκυψε. Εξαιρέσεις (1/2)

Εξαιρέσεις (2/2) Η αναζήτηση ξεκινά από τη συνάρτηση στην οποία προκλήθηκε το σφάλμα και καταλήγει στη main (αν πριν δεν βρεθεί handler) Ένας handler είναι κατάλληλος να κάνει handle ένα exception αν ο τύπος του exception object ταιριάζει με τον τύπο εξαίρεσης που ο handler μπορεί να διαχειριστεί. Αν βρεθεί κατάλληλος handler, τότε εκτελείται ο κώδικάς του, διαφορετικά το πρόγραμμα τερματίζεται.

try – catch Η κλήση της μεθόδου η εκτέλεση της οποίας ενδέχεται να προκαλέσει μία εξαίρεση τοποθετείται εντός του μπλοκ εντολών try. Χειρισμός Εξαιρέσεων try { //κώδικας που μπορεί να //προκαλέσει εξαίρεση } catch(MyException1 mye1) { // … // … } catch(MyException2 mye2) { // … // … } finally { // … // …} try { //κώδικας που μπορεί να //προκαλέσει εξαίρεση } catch(MyException1 mye1) { // … // … } catch(MyException2 mye2) { // … // … } finally { // … // …} Το μπλοκ catch περιέχει εντολές που θα διαχειριστούν την εξαίρεση που προκλήθηκε. finally: μπλοκ εντολών που ακολουθεί των catch μπλοκ και περιέχει κώδικα που εκτελείται είτε συμβεί εξαίρεση είτε όχι

Συνήθεις Εξαιρέσεις NullPointerException : Προσπέλαση αντικειμένου null IllegalArgumentException : Λάθος τύπου ορίσματα ArrayIndexOutOfBoundsException : Εκτός ορίων πίνακα ArithmeticException : Διαίρεση με το 0 FileNotFoundException : Το αρχείο δεν βρέθηκε στο δίσκο

Πλεονεκτήματα Χειρισμού Εξαιρέσεων Διαχωρισμός κώδικα για αναγνώριση λαθών από τον «κανονικό» κώδικα Ικανότητα διαχείρισης της εξαίρεσης ακολουθώντας τη στοίβα κλήσης μεθόδων Δυνατότητα χειρισμού μίας εξαίρεσης με διαφορετικούς τρόπους Πολλά catch μπλοκ μπορούν να αναφέρονται στο ίδιο try μπλοκ Υψηλότερα οι ειδικότερες εξαιρέσεις στον κώδικα Δυνατότητα δημιουργίας νέων κλάσεων εξαιρέσεων

Μετατροπή Αντικειμένων Η μετατροπή αντικειμένων (type casting) είναι χρήσιμη όταν θέλουμε να διαχειριστούμε ένα αντικείμενο ως διαφορετικού του ενός τύπου Μετατροπές προς τα πάνω (upcasting) Πάντα επιτρεπτές Γίνονται με απλή ανάθεση Μετατροπές προς τα κάτω (downcasting) Δεν είναι πάντα επιτρεπτές Γίνονται με χρήση cast τελεστή Μπορεί να γίνει κανονικά η μεταγλώττιση (αφού το cast ίσως επιτρέπεται), αλλά να παραχθεί runtime error

Παράδειγμα

Είσοδος / Έξοδος (I/O) Η Java χρησιμοποιεί ροές (streams) για να αναπαραστήσει πηγές εισόδου ή προορισμούς εξόδου (π.χ. αρχεία στο δίσκο, άλλα προγράμματα). Ροή: ακολουθία από δεδομένα (απλά bytes μέχρι σύνθετα αντικείμενα). Είσοδος / Έξοδος σε αρχεία δίσκου

Ροές Εισόδου / Εξόδου Ροές Εισόδου (Input Streams) Διαβάζουν ένα «τεμάχιο» πληροφορίας τη φορά Ροές Εξόδου (Output Streams) Γράφουν ένα «τεμάχιο» πληροφορίας τη φορά

Τύποι Ροών (1/2) Byte Streams: Ι/Ο αυθαίρετου τύπου δεδομένων Character Streams: I/O χαρακτήρων Buffered Streams : χρήση δομής buffer για αποδοτικότερη αλληλεπίδραση Scanning and Formatting: για formatted κείμενο

Τύποι Ροών (2/2) I/O from the command line Standard Stream Input: πληκτρολόγιο Output: οθόνη Console Data Streams: για primitive data types και String δυαδικής μορφής Object Streams: για οποιουδήποτε τύπου αντικείμενα

Byte Streams Ροές που διαχειρίζονται χαμηλού επιπέδου δεδομένα Συνήθεις ροές byte FileInputStream/ FileOutputStream Όλοι οι υπόλοιποι τύποι ροών βασίζονται στις ροές byte.

Ι/Ο από αρχεία δίσκου Οι ροές δεν υποστηρίζουν όλες τις επιθυμητές αλληλεπιδράσεις με τα αρχεία που βρίσκονται στο δίσκο File: χειρισμός αρχείων ανεξαρτήτου πλατφόρμας και OS Random Access File: υποστηρίζει μη- ακολουθιακή προσπέλαση στα αρχεία

Χρόνος Εκτέλεσης Γενικά, ο χρόνος εκτέλεσης ενός java προγράμματος αναμένεται μεγαλύτερος ενός ισοδύναμου σε κάποια άλλη γλώσσα προγραμματισμού (όχι όμως και ο χρόνος ανάπτυξης ) Αιτία: Ο μεταγλωττισμένος για μία μηχανή κώδικας είναι εν γένει ταχύτερος από τον κώδικα που εκτελείται από έναν interpreter. Βελτίωση: Just-In-Time μεταγλώττιση

Κάποια Τελευταία Σχόλια… Πώς προέκυψε ο όρος “bytecode”; Επειδή ουσιαστικά αποτελεί μία binary αναπαράσταση του προγράμματος προορισμένη να εκτελεστεί από τη JVM (software) και όχι από το hardware. Σε τι γλώσσα είναι γραμμένη η Java; Οι περισσότεροι compilers (π.χ. της Sun) για Java είναι πλέον γραμμένοι σε Java, αν και αρχικά ως βάση χρησιμοποιήθηκαν οι γλώσσες C/C++. Σε ότι αφορά τις JVM ακόμα και σήμερα χρησιμοποιούν C++ (όχι όμως αποκλειστικά), κυρίως για λόγους απόδοσης. Ακόμα και JVMs της Sun!

C++ vs. Java C++JAVA Cout<<“Answer:”<<answer;System.out.println("Answer: “ + answer); cin>>ch;ch=System.in.read(); void main()public static void main(String[] args) int main(int argc,char** argv)public static void main(String[] args) const int MAX=10;final int MAX=10; char* str;String str; int* scores=new int[5];int[] scores=new int[5]; delete scores; ΔΕΝ ΧΡΕΙΑΖΕΤΑΙ

Εργαλεία Ανάπτυξης Eclipse (open source) NetBeans (open source) JDeveloper (Oracle) Visual J++ (Microsoft) …

Προτεινόμενες Πηγές Exceptions, ons/index.html ons/index.html Input/Output, Type casting,

Ερωτήσεις ?