Διάλεξη 14: Εξαιρέσεις (Exceptions) Διδάσκων: Παναγιώτης Ανδρέου
|
|
- Χάρις Αντωνοπούλου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Διάλεξη 14: Εξαιρέσεις (Exceptions) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εξαιρέσεις (Exception) - Δήλωση, Διαχείριση, Έγερση Εξαιρέσεων - try, catch, finally, try-with-resources - Assertions Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 1
2 Εξαίρεση (Exception) Ερωτήσεις: Τι συμβαίνει όταν για κάποιο λογικό λάθος ένα πρόγραμμα παράξει runtime error; Πως μπορούμε να διαχειριστούμε αυτό το λάθος ώστε το πρόγραμμα να συνεχίσει την κανονική του ροη; Απάντηση: Με την χρήση των εξαιρέσεων (exceptions) Ορισμός: Μία εξαίρεση είναι ένα συμβάν, το οποίο συμβαίνει κατά τη διαρκεί εκτέλεσης ενός προγράμματος και διαταράσσει την κανονική ροή των εντολών του προγράμματος exception είναι συντομογραφία της φράσης "exceptional event. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 2
3 Σφάλματα προγραμμάτων Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Αποτυχία δημιουργίας μνήμης (new) array[-1] (Πρόσβαση σε μη επιτρεπτή θέση μνήμης) 10/0 (Μη επιτρεπτές πράξεις με αριθμούς) voidplay( char* whattoplay); play(null); (Λανθασμένη είσοδος παραμέτρων) Κάποια σφάλματα τα προλαμβάνει ο μεταγλωττιστής Κάποια άλλα πάλι ΌΧΙ. Η γλώσσα προγραμματισμού C και οι περισσότερες γλώσσες παρέχουν μηχανισμούς αντιμετώπισης σφαλμάτων, οι οποίοι βασίζονται περισσότερο σε προγραμματιστικές συμβάσεις και δεν εντάσσονται στη σημασιολογία της γλώσσας. Επιστροφή κωδικών λάθους κλπ. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 3
4 Σφάλματα προγραμματιστών Πολύ συχνά οι προγραμματιστές δεν ακολουθούν κάποια σύμβαση αναφορικά με τα σφάλματα. Έτσι, ο κώδικάς τους: Δεν ανιχνεύει σφάλματα. Δεν επιστρέφει τις κατάλληλες τιμές ή δεν εγείρει τις κατάλληλες σημαίες όταν ανιχνεύσει κάποιο σφάλμα. Δεν ελέγχει τις τιμές επιστροφής διαδικασιών ή τυχούσες σημαίες σφαλμάτων. Η εισαγωγή κώδικα διαχείρισης σφαλμάτων στα προγράμματα, έχει ως αποτέλεσμα ο κώδικας να γίνεται πολύπλοκος και δυσανάγνωστος. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 4
5 Προσέγγιση της JAVA H Javaεντάσσει τη διαχείριση σφαλμάτων στη σημασιολογία της γλώσσας, επιβάλλοντας την ρητή αντιμετώπισή τους. ΠΩΣ? Εξαίρεση (Exception): Προβλήματα τα οποία αποτρέπουν την συνέχιση της μεθόδου ή του πεδίου εμβέλειας στο οποίο βρίσκεται ο κώδικάς μας κατά την εκτέλεσή του. Προβλήματα για τα οποία δεν υπάρχει αρκετή πληροφορία στο τρέχον πεδίο εμβέλειας για να αντιμετωπισθούν και επομένως η κανονική ροή του προγράμματος πρέπει να διακοπεί. Όταν σε κάποιο σημείο το σύστημα εκτέλεσης ανιχνεύσει ένα σφάλμα (δηλαδή μια κατάσταση την οποία ο κώδικας στο σημείο αυτό δεν μπορεί να διαχειρισθεί), τότε εγείρει μια εξαίρεση και το πρόβλημα μετατίθεται σε ένα υψηλότερο συγκείμενο, το οποίο ίσως διαθέτει πληροφορίες για την κατάλληλη διαχείριση του σφάλματος. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 5
6 Τι είναι η εξαίρεση? java.lang.object java.lang.throwable SuperClass java.lang.exception Κλάσεις που κληρονομούν άμεσα από την java.lang.exception Στην Java όπως και στην C# κατηγοριοποιούνται σε ιεραρχικές δομές Δηλαδή υπάρχουν κλάσεις που κληρονομούν από τους κληρονόμους της Exception. Η τεχνική αυτή προσδίδει μία επιπλέον ιδιότητα στη διαχείριση των εξαιρέσεων Αν ένας τομέας κώδικα προστατεύεται για τη διαχείριση της εξαίρεσης X τότε προστατεύεται αυτόματα και από τους απόγονους της X. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 6
7 Βασικές εξαιρέσεις στη JAVA Η κλάση Throwableπεριγράφει οτιδήποτε μπορεί να εγερθεί σαν εξαίρεση, και έχει δύο γενικές υποκλάσεις: Error:αντιστοιχεί σε σφάλματα στη διάρκεια της μεταγλώττισης ή σφάλματα συστήματος, για τα οποία ο προγραμματιστής δεν χρειάζεται να τα πιάσει. Exception:ο βασικός τύπος σφάλματος ο οποίος μπορεί να εγερθεί από οποιαδήποτε μέθοδο των καθιερωμένων βιβλιοθηκών της Java. Ο καλύτερος τρόπος για να δείτε ποιές είναι οι διάφορες εξαιρέσεις που εγείρει η Java, είναι να πλοηγηθείτε στο εγχειρίδιό της. Η διαφορά των εξαιρέσεων μεταξύ τους έγκειται κατά κύριο λόγο στα διαφορετικά ονόματαπου έχουν -μέσω των οποίων σηματοδοτείται το πρόβλημα στο οποίο αντιστοιχούν. Οι διάφορες εξαιρέσεις ορίζονται στη βιβλιοθήκη java.lang, αλλά και σε άλλες υποστηρικτικές βιβλιοθήκες όπως util,net, και io. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 7
8 Είδη Εξαιρέσεων (Exception Types) Δύο βασικά Είδη Exceptions Exception Error Exception Object Throwable Error ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 8
9 Διαπροσωπεία Throwable Συχνή Χρήση String tostring(): Returns a short description of this throwable. String getmessage(): Returns the detail message string of this throwable. StackTraceElement[] getstacktrace(): Provides programmatic access to the stack trace information printed by printstacktrace(). void printstacktrace(), (PrintStreams), (PrintWriters): Prints this throwableand its backtraceto the standard error stream. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 9
10 Διαπροσωπεία Throwable Σπάνια Χρήση Throwable fillinstacktrace(): Fills in the execution stack trace. ThrowablegetCause(): Returns the cause of this throwableor null if the cause is nonexistent or unknown. String getlocalizedmessage(): Creates a localized description of this throwable. ThrowableinitCause(Throwablecause): Initializes the cause of this throwable to the specified value. void setstacktrace(stacktraceelement[] stacktrace): Sets the stack trace elements that will be returned by getstacktrace() and printed by printstacktrace() and related methods. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 10
11 Λάθη Συστήματος (System Errors) Λάθη Συστήματος(system errors): ρίχνονται από το JVM και αναπαριστούνται από την κλάση Error Είναι εσωτερικά λάθη του συστήματος Συμβαίνουν σπάνια, αλλά αν συμβεί κάποιο, σαν προγραμματιστές δεν μπορείτε να κάνετε πολλά LinkageError Error VirtualMachineError ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 11
12 Εξαιρέσεις (Exceptions) Εξαιρέσεις (Exceptions): αναπαριστούνλάθη τα οποία πηγάζουν από το πρόγραμμα (Runtime Exceptions) και εξωτερικές οντότητες. Τα λάθη αυτά μπορούν να διαχειριστούν μέσα από το πρόγραμμα με διάφορους τρόπου όπως try{ catch{. ClassNotFoundException Exception IOException RuntimeException ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 12
13 Εξαιρέσεις Πραγματικού Χρόνου (Runtime Except.) Εξαιρέσεις Πραγματικού Χρόνου (RuntimeExceptions): αναπαριστούνλάθη τα οποία πηγάζουν από το πρόγραμμα (Runtime Exceptions). Παραδείγματα: λάθος casting, εκτός ορίων, αριθμητικά λάθη, κτλ. ArithmeticException RuntimeException NullPointerException IndexOutOfBoundsException ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 13
14 Runtime Exceptions Στη JAVA υπάρχει μια ολόκληρη κατηγορία από εξαιρέσεις οι οποίες εγείρονται αυτόματα από το σύστημα εκτέλεσης της γλώσσας και για τις οποίες ο προγραμματιστής δεν υποχρεούται από το μεταγλωττιστή να τις λάβει υπόψη του στον προσδιορισμό των εξαιρέσεων των μεθόδων του. Όλες αυτές οι εξαιρέσεις είναι κληρονόμοι μιας κλάσης βάσης, της RuntimeException. Οι εξαιρέσεις αυτού του τύπου αντιστοιχούν συνήθως είτε σε καταστάσεις τις οποίες δεν μπορεί να ελέγξει ο προγραμματιστής (π.χ. πέρασμα λάθος τιμής παραμέτρου σε μια μέθοδο του) είτε σε λογικά σφάλματα του προγράμματος. Εάν μια εξαίρεση τύπου RuntimeExceptionδεν ανιχνευθεί από κάποιο διαχειριστή εξαίρεσης, θα φθάσει μέχρι το πλαίσιο συμφραζομένων της main, και θα προκαλέσει έξοδο του προγράμματος με προηγούμενη κλήση της PrintStackTrace, για διευκόλυνση της αποσφαλμάτωσης. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 14
15 Checked vs. Unchecked Exceptions UnCheckedExceptions: αποτελούν οι εξαιρέσεις των κλάσεων RuntimeExceptionκαι Error. Συνήθως δεν μπορούν να προβλεφθούν και πολύ απίθανο να διαχειριστούν. Checked Exceptions: όλα τα άλλα exceptions. Μπορούν να προβλεφθούν και να διαχειριστούν. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 15
16 Declaring, Throwing, Catching Exceptions method1() { try { //invoke method2() catch (Exception ex) { //Διαχείριση //exception τύπου ex catch exception method2() throws Exception { declare exception if (error occurs) { throw new Exception(); throw exception ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 16
17 Ο προσδιορισμός των εξαιρέσεων Η Javaενθαρρύνει την ενημέρωση των μεθόδων με τις πιθανές εξαιρέσεις που μπορούν να εγείρουν και δεν τις διαχειρίζονται. Για τον σκοπό αυτό, το συντακτικό της γλώσσας παρέχει την δήλωση throwsμε την οποία δηλώνεται ποιές εξαιρέσεις μπορεί να εγερθούν στο σώμα κάποιας μεθόδου (προσδιορισμός εξαιρέσεων exception specification). Η χρήση της throws είναι υποχρεωτική και επιβάλλεται από τον μεταγλωττιστή, ακολουθώντας τη δήλωση των παραμέτρων της μεθόδου: void f() throws TooBig, TooSmall, DivZero { Υπάρχει η δυνατότητα μια μέθοδος να δηλώσει ότι εγείρει κάποια εξαίρεση ενώ δεν περιλαμβάνει στο σώμα της την αντίστοιχη εντολή throw (γιατί παρέχεται η δυνατότητα αυτή;) ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 17
18 Declaring Exceptions Κάθε μέθοδος πρέπει να δηλώσει ρητά τι είδη exceptions μπορεί να εγείρει (throw) Παραδείγματα: public void method() throws IOException public void method() throws IOException, checked exception ArrayIndexOutOfBoundsException unchecked exception Τα unchecked exceptions δεν είναι ανάγκη να δηλωθούν ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 18
19 Παράδειγμα από JAVA API public void connect( SocketAddress endpoint, int timeout) Description: Parameters: Throws: throws IOException IOException- if an error occurs during the connection SocketTimeoutException-if timeout expires before connecting IllegalBlockingModeException-if this socket has an associated channel, and the channel is in non-blocking mode IllegalArgumentException-if endpoint is null or is a SocketAddress subclass not supported by this socket ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 19
20 Throwing Exceptions if (t == null) throw new NullPointerException(); if (t == null) throw new NullPointerException( t==null ); Η εντολή throwδιακόπτει την τρέχουσα ροή εκτέλεσης και επιστρέφει από την τρέχον εγγραφή δραστηριοποίησης, μεταφέροντας τον έλεγχο του προγράμματος σε κάποιον διαχειριστή εξαιρέσεων(η throw είναι μία μορφή return). Με χρήσητης throwμπορούμε να εγείρουμε οποιοδήποτε αντικείμενο εξαίρεσης, το οποίο ανήκει (ή κληρονομεί από) την κλάση Throwable. Εφόσον χρησιμοποιούμε την εντολή throw, πρέπει να θεωρήσουμε ότι όταν αυτή εκτελεσθεί και εγείρει μια εξαίρεση, είναι ξεκάθαρο ποιός διαχειριστής θα αναλάβει να την αντιμετωπίσει. Αυτό επιτυγχάνεται με την τοποθέτηση των εντολών throw εντός φυλασσόμενων περιοχών κώδικα(guardedregions), οι οποίες καθορίζονται από την εντολή try. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 20
21 Τι γίνεται σε περίπτωση εξαίρεσης; Δημιουργείται ένα αντικείμενο εξαίρεσης (exception object) Το τρέχον μονοπάτι εκτέλεσης διακόπτεται και επιστρέφεται το χειριστήριο του αντικείμενου εξαίρεσης από το τρέχον πεδίο εμβέλειας. Ο μηχανισμός διαχείρισης σφαλμάτων του συστήματος εκτέλεσης της JAVA αναλαμβάνει να εντοπίσει το σημείο από το οποίο μπορεί να συνεχιστεί η εκτέλεση του προγράμματος. Το σημείο αυτό είναι ο διαχειριστής εξαιρέσεων, ο οποίος αναλαμβάνει να ανανήψει το πρόγραμμα από το πρόβλημα και να συνεχίσει την εκτέλεση. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 21
22 Catching Exceptions/Διαχειριστές Εξαιρέσεων Κάθε φορά που προκαλείται εξαίρεση το πρόγραμμα καλεί τον διαχειριστή εξαίρεσης (exception handler). Έτσι: Περιορίζεται ο κώδικας τον οποίο πρέπει να γράψουμε για ανίχνευση σφαλμάτων. Μπορούμε να διαχωρίσουμε τον κώδικα που περιγράφει το τι θέλουμε να επιτύχουμε από τον κώδικα που διαχειρίζεται τα σφάλματα. try { //Κώδικας που μπορεί να //δημιουργήσει exceptions catch (Exception ex ) { //Διαχείριση/Αντιμετώπιση //γενικού τύπου exception ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 22
23 Η εντολή try και οι διαχειριστές εξαιρέσεων catch try { //Κώδικας που μπορεί να //δημιουργήσει exceptions catch (ExceptionType1 et1 ) { //Διαχείριση/Αντιμετώπιση //exception τύπου Type1 catch (ExceptionType2 et2 ) { //Διαχείριση/Αντιμετώπιση //exception τύπου Type2 catch (ExceptionType3 et3 ) { //Διαχείριση/Αντιμετώπιση //exception τύπου Type3 catch (Exception ex ) { //Διαχείριση/Αντιμετώπιση //γενικού τύπου exception Διαχειριστές Εξαιρέσεων (Exception Handlers) Οι διαχειριστές τοποθετούνται αμέσως μετά το τέλος της φυλασσόμενης περιοχής. Εάν προκληθεί εξαίρεση, ο μηχανισμός διαχείρισής της ψάχνει για τον πρώτο διαχειριστή (catch), η παράμετρος του οποίου συμπίπτει με τον τύπο της εξαίρεσης. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 23
24 Διαχείριση εξαιρέσεων Στα προγράμματά μας μπορούμε να εισαγάγουμε διαχειριστές εξαιρέσεων, οι οποίοι να διαχειρίζονται οποιεσδήποτε εξαιρέσεις. Αυτό το επιτυγχάνουμε πιάνοντας εξαιρέσεις (γενικού) τύπου Exception. Επειδή η Exceptionδεν παρέχει πολλές πληροφορίες για το συγκείμενο μιας εξαίρεσης, έχουμε τη δυνατότητα να ορίσουμε νέες κλάσεις εξαιρέσεων, κληρονομώντας από την Exceptionκαι παρακάμπτοντας τις μεθόδους της Exception, της Throwableκαι της Object: getmessage() getlocalizedmessage() tostring() printstacktrace() fillinstacktrace() getclass() ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 24
25 Η εντολή finally try { //Κώδικας που μπορεί να //δημιουργήσει exceptions catch (ExceptionType1 et1 ) { //Διαχείριση/Αντιμετώπιση //exception τύπου Type1 catch (Exception ex ) { //Διαχείριση/Αντιμετώπιση //γενικού τύπου exception finally { //Εκτελείτε πάντα Το finally block εκτελείται πάντα! Εξασφαλίζει ότι κάποιες δηλώσει θα εκτελεστούν άσχετα αν συμβεί κάποιο απρόσμενο exception Μπορεί να χρησιμοποιηθεί και χωρίς δηλώσεις Επιτρέπει την εκτέλεση κώδικα ακόμα και στις περιπτώσεις που εκτελείτε κατά λάθος κάποιο return, continue ή break Πολύ καλή πρακτική ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 25
26 Η εντολή try-with-resources try ( BufferedReader br = new BufferedReader( new FileReader(path))) { //Κώδικας που μπορεί να //δημιουργήσει exceptions Παρόμοιο με τη δήλωση try αλλά επιτρέπει και τη αρχικοποίηση κάποιων πόρων (resources) Ένας πόρος (resource) είναιένα αντικείμενο το οποίο υπάρχει μόνο κατά την εκτέλεση του code block Μόνο τα αντικείμενα που υλοποιούν τη διαπροσωπεία java.lang.autocloseable μπορούν να χρησιμοποιηθούν σαν resource (περιλαμβάνει όλα τα αντικείμενα που υλοποιούν java.io.closeable) ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 26
27 Rethrowing Exceptions Σε ορισμένες περιπτώσεις επιθυμούμε να εγείρουμε μια εξαίρεση που έχουμε συλλάβει σε κάποιο σημείο του κώδικά μας, ώστε η διαχείριση της να αναληφθεί από το αμέσως επόμενο συγκείμενο. Αυτό προκύπτει αν πιάσουμε μια γενική εξαίρεση (Exception) και θελήσουμε να την παραπέμψουμε σε έναν πιο εξειδικευμένο διαχειριστή. Σε τέτοια περίπτωση, το αντικείμενο της εξαίρεσης διατηρείται και μεταφέρεται στον επόμενο διαχειριστή, ο οποίος έχει πρόσβαση στα περιεχόμενα του αντικειμένου εξαίρεσης. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 27
28 Rethrowing Exceptions Όταν προωθούμε μια εξαίρεση, τα περιεχόμενα της printstacktrace()εξακολουθούν να αφορούν στο σημείο στο οποίο προκλήθηκε η αρχική εξαίρεση, και όχιστο σημείο στο οποίο επανεγείραμε την εξαίρεση. Αν θέλουμε να συνδυάσουμε το αντικείμενο εξαίρεσης με νέα πληροφορίαγια το ίχνος της στοίβας (stacktrace), μπορούμε να καλέσουμε τη μέθοδο fillinstacktrace(). H fillinstacktrace()δημιουργεί ένα αντικείμενο Throwable, προσθέτοντας την τρέχουσα κατάσταση της στοίβας στο αρχικό αντικείμενο της εξαίρεσης. Το νέο αντικείμενο Throwable, επιστρέφεται από την fillinstacktrace(). Αν προωθήσουμε εξαίρεση διαφορετικού τύπου, τότε χάνουμε την πληροφορία σχετικά με το σημείο όπου εγέρθηκε η αρχική εξαίρεση και λαμβάνουμε (μέσω της printstacktrace) πληροφορίες για το σημείο της νέας εντολής throw. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 28
29 Rethrowing Exceptions public class Rethrowing { public static void f() throws Exception { System.out.println("1. originating the exception in f()"); throw new Exception( ***thrown from f()"); public static void g() throws Throwable { try { f(); catch(exception e) { System.err.println( 2.Inside g(), e.printstacktrace()"); e.printstacktrace(); //3 throw e; public static void main(string[] args) throws Throwable { try { g(); catch(exception e) { System.err.println("4.Caught in main,e.printstacktrace()"); e.printstacktrace(); //5 ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 29
30 Rethrowing Exceptions $ java Rethrowing 1. originating the exception in f() 2. Inside g(),e.printstacktrace() 3. java.lang.exception: ***thrown from f() at Rethrowing.f(Rethrowing.java:4) at Rethrowing.g(Rethrowing.java:8) at Rethrowing.main(Rethrowing.java:16) 4. Caught in main, e.printstacktrace() 5. java.lang.exception: ***thrown from f() at Rethrowing.f(Rethrowing.java:4) at Rethrowing.g(Rethrowing.java:8) at Rethrowing.main(Rethrowing.java:16) ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 30
31 Αλυσιδωτές εξαιρέσεις (exception chaining) Συχνά θέλουμε, πιάνοντας μια εξαίρεση, να εγείρουμε κάποια άλλη, διατηρώντας ταυτόχρονα την πληροφορία για την αρχική εξαίρεση. Από το JDK 1.4 και μετά, οι υποκλάσεις της Throwableδέχονται ένα αντικείμενο causeστον κατασκευαστή τους, το οποίο αποτελεί την αρχική εξαίρεση. Περνώντας το causeστον κατασκευαστή, διατηρείται το πλήρες ίχνος της στοίβας μέχρι την αρχική εξαίρεση, παρ ότι δημιουργούμε και εγείρουμε νέα εξαίρεση. Οι υποκλάσεις της Throwable που δέχονται την παράμετρο cause στον κατασκευαστή τους είναι οι θεμελιώδεις εξαιρέσεις Error(used bythejvm toreportsystemerrors), Exception, και RuntimeException. Αν θέλετε να αλυσοδέσετε άλλους τύπους εξαιρέσεων, πρέπει να το κάνετε μέσω της μεθόδου initcause(). ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 31
32 Ιεραρχία εξαιρέσεων: Sub-classing Υπάρχει η δυνατότητα δημιουργίας δικών μας Εξαιρέσεων κάνοντας χρήση της κληρονομικότητας. Παράδειγμα: public class HierarchicalTryCatch extends Exception { public HierarchicalTryCatch() { public HierarchicalTryCatch(String str) { super( HierarchicalTryCatch + str); ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 32
33 Ιεραρχία εξαιρέσεων: usage Παράδειγμα χρήσης: public class TestExceptions { public static void main(string args) { try { throw new HierarchicalTryCatch( test ); catch (HierarchicalTryCatch ex1 ) { //Διαχείριση/Αντιμετώπιση //exception τύπου HierarchicalTryCatch ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 33
34 Ιεραρχία εξαιρέσεων: usage Παράδειγμα χρήσης (καλύτερη πρακτική): public class TestExceptions { public static void main(string args) { try { throw new HierarchicalTryCatch( test ); catch (HierarchicalTryCatch ex1 ) { //Διαχείριση/Αντιμετώπιση //exception τύπου HierarchicalTryCatch catch (Exception ex ) { //Διαχείριση/Αντιμετώπιση //γενικού τύπου exception ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 34
35 Κατασκευή εξαιρέσεων Local Parameters, override public class MyException extends Exception { private int x; public class MyException() { public class MyException(String msg) { super(msg); public class MyException(String msg, int x) { super(msg); this.x = x; public int getx() {return x; public String getmessage() { return Custom MyException Message ; ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 35
36 Κατασκευή εξαιρέσεων Local Parameters, override public class MyException extends Exception { private int x; public class MyException() { public class MyException(String msg) { super(msg); public class MyException(String msg, int x) { super(msg); this.x = x; public int getx() {return x; public String getmessage() { return Custom MyException Message ; ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 36
37 Περιορισμοί εξαιρέσεων Όταν υπερσκελίζουμε (overriding) μια μέθοδο (κατά την εφαρμογή κληρονομικότητας), μπορούμε να εγείρουμε μόνο εξαιρέσεις οι οποίες καθορίζονται στην κλάση-βάσης της μεθόδου που υπερσκελίζουμε. Ο περιορισμός αυτός υπάρχει ούτως ώστε κώδικες που δουλεύουν με μια κλάση, να δουλεύουν σωστά και με κάθε αντικείμενο που κληρονομεί από αυτή την κλάση. Οι περιορισμοί κληρονομικότητας των εξαιρέσεων δεν ισχύουν για τους κατασκευαστές. Ένας κατασκευαστής μπορεί να εγείρει ότι εξαιρέσεις θέλει. ωστόσο, επειδή η κλήση του εμπεριέχει κλήση στον κατασκευαστή της βάσης του, ο κατασκευαστής πρέπει να δηλώνει όλες τις εξαιρέσεις του κατασκευαστή βάσης του, στον προσδιορισμό των δικών του εξαιρέσεων. Σημειώστε ότι ένας κατασκευαστής δεν μπορεί να ανιχνεύει τις εξαιρέσεις που εγείρει ο κατασκευαστής της κλάσης του πατέρα του. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 37
38 Περιορισμοί εξαιρέσεων class class BaseballException extends Exception { class Foul extends BaseballException { class Strike extends BaseballException { class Inning { public Inning() throws BaseballException { public void event() throws BaseballException { public void walk() { class StormException extends Exception { class RainedOut extends StormException { class PopFoul extends Foul { ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 38
39 Περιορισμοί εξαιρέσεων public class StormyInning extends Inning { // OK to add new exceptions for constructors, but you // must deal with the base constructor exceptions: public StormyInning() throws RainedOut, BaseballException { public StormyInning(String s) throws Foul, BaseballException { // Regular methods must conform to base class: //! public void walk() throws PopFoul { //! public void event() throws RainedOut { // Compile error: Interface CANNOT add exceptions to existing // methods from the base class: // If the method doesn't already exist in the // base class, the exception is OK: public void rainhard() throws RainedOut { // You can choose to not throw any exceptions, // even if the base version does: public void event() { ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 39
40 Παρατηρήσεις Δεν σημαίνει ότι επειδή μία προδιαγραφή exception υπάρχει στην μέθοδο μίας base-class ότι θα πρέπει να υπάρχει και στην μέθοδο που ορίζεται στην υποκλάση. Αυτό είναι διαφορετικό από τους κανόνες κληρονομικότητας που καθορίζουν ότι μία μέθοδος στο base class πρέπει να υπάρχει και στην υποκλάση. Με απλά λόγια, οι προδιαγραφές διαπροσωπείας μίας εξαίρεσης για κάποια συγκεκριμένη μέθοδο μπορούν να στενέψουν κατά τη διάρκεια της κληρονομικότητας και επικάλυψης αλλά όχι να διευρυνθούν Αυτό καθιστά τον αντίθετο κανόνα σε σχέση με τις διαπροσωπείες κατά τη διάρκεια της κληρονομικότητας. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 40
41 Assertions Assertion: Δήλωση που επιτρέπει την επιβεβαίωση κάποιων υποθέσεων για το πρόγραμμα που εκτελείται. Ισχύουν από JAVA 1.4 και πάνω. Περιλαμβάνουν booleanεκφράσεις που πρέπει να είναι true κατά τη διάρκεια εκτέλεσης Δηλώνονται με τη λέξη assert. assert <έκφραση> π.χ., assert i==10; assert <έκφραση>: <μήνυμα> π.χ., assert (i==10): i is + i; Αν το assertion είναι false τότε θα γίνει throw AssertionError Η κλάση AssertionErrorclass έχει τον no-argconstructor και 7 overloaded single-argument constructors με τύπο παραμέτρωνint, long, float, double, boolean, char, and Object. Για το πρώτο παράδειγμα εκτελείται ο no-argconstructor Για άλλες περιπτώσεις εκτελείται ο ανάλογος constructor ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 41
42 Παράδειγμα Assertion public class AssertionDemo { public static void main(string[] args) { int i; int sum = 0; for (i = 0; i < 10; i++) { sum += i; assert i == 10; assert (sum > 10 && sum < 5 * 10) : "sum is " + sum; ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 42
43 Εκτελώντας προγράμματα με assertions Τα assertions δεν είναι ενεργοποιημένα by default Για να ενεργοποιηθούν πρέπει να εκτελεστεί το switch enableassertions, ή τη συντομογραφία ea Μπορούν να ενεργοποιηθούν σε επίπεδο πακέτου ή κλάσης Παράδειγμα: java ea:package1 da:class1 AssertDemo Ενεργοποιεί τα assertions στο πακέτο package1 και τα απενεργοποιεί στην κλάση Class1 ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 43
44 Assertions vs. Exceptions Τα assertionsδεν πρέπει να αντικαταστούν το exception handling Τα assertions επιβεβαιώνουν την ορθότητα του προγράμματος Τα exceptions διαχειρίζονται σφάλματα ευρωστία Τα assertions μπορούν να απενεργοποιηθούνενώ το exception handling όχι ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 44
ΕΠΛ233 ΕΞΑΙΡΕΣΕΙΣ στη JAVA
ΕΞΑΙΡΕΣΕΙΣ στη JAVA Σφάλματα προγραμμάτων Μ. Δικαιάκος Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Εξάντληση διαθέσιμης ιδεατής μνήμης, προσπάθεια ανάγνωσης εκτός των ορίων
Διαβάστε περισσότεραΕξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions
(Object Oriented Programming) Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων
Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών
Διαβάστε περισσότεραΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα
ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Εξαιρέσεις ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΕΞΑΙΡΕΣΕΙΣ
Διαβάστε περισσότεραΠρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη
9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Διαβάστε περισσότερα6. Εξαιρέσεις στη γλώσσα Java
6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις
Διαβάστε περισσότεραΕξαιρέσεις στην Java EXCEPTIONS IN JAVA
Εξαιρέσεις στην Java EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΤο πρόγραμμα 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 υποστηρίζει
Διαβάστε περισσότεραΧειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:
Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που
Διαβάστε περισσότεραΕξαιρέσεις στη Java. Περιεχόμενα. Κάποιες προκαθορισμένες ρ εξαιρέσεις. Κωστής Σαγώνας
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε
Διαβάστε περισσότεραΔιάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Διαβάστε περισσότεραΔιάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage
Διαβάστε περισσότεραΧειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA
Χειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει
Διαβάστε περισσότεραΑντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραΕργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Κληρονομικότητα (Inheritance) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κληρονομικότητα και Επαναχρησιμοποίηση - Υποκλάσεις/Υπερκλάσεις - Απόκρυψη ονομάτων - Το super, protected
Διαβάστε περισσότεραΚληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1
Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 10 Exceptions handling (Χειρισμός εξαιρέσεων)
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]
Διαβάστε περισσότεραHelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1
HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello
Διαβάστε περισσότεραΔιάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους
Διαβάστε περισσότεραΚωστής Σαγώνας Πιάσιμο εξαιρέσεων (catching exceptions) Ρίψη εξαιρέσεων (throwing exceptions) Η πρόταση finally
Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]); int j = Integer.parseInt(args[1]); System.out.println(i/j); > javac
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΕξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί
Διαβάστε περισσότεραΕΞΑΙΡΕΣΕΙΣ στη JAVA. Σφάλματα προγραμμάτων. Μειονεκτήματα. Προσέγγιση της JAVA
ΕΞΑΙΡΕΣΕΙΣ στη JAVA Σφάλματα προγραμμάτων Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Εξάντληση διαθέσιμης ιδεατής μνήμης, προσπάθεια ανάγνωσης εκτός των ορίων ενός πίνακα,
Διαβάστε περισσότεραΕξαιρέσεις. try, catch, finally, throw, throws
Εξαιρέσεις try, catch, finally, throw, throws Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]
Διαβάστε περισσότεραΠαύλος Εφραιµίδης. Java. Κληρονοµικότητα
κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΒασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012
Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-252 Αντικειµενοστρεφής Προγραµµατισµός Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Θέμα 1 Θέμα 2 Θέμα 3 Θέμα 4 Θέμα
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες
Διαβάστε περισσότεραΠεριεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΕισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες
Διαβάστε περισσότεραΚατασκευαστές. Μέθοδοι Κατασκευής (Constructors).
Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 23/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Υπερφόρτωση μεθόδων Υπερφόρτωση μεθόδων Πολλαπλές
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Διαβάστε περισσότεραΣυντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #7 η : Εξαιρέσεις (λάθη εκτέλεσης, χειρισμός εξαιρέσεων λαθών,) Είσοδος / Έξοδος (ρεύματα, κλάσεις εισόδου και εξόδου, διαχείριση αρχείων) Γαβαλάς
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΕργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:
Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects
Διαβάστε περισσότερα(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Διαβάστε περισσότερα1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι
1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της
Διαβάστε περισσότεραΗ λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #6 η : Η λέξη κλειδί this, υπερφόρτωση μεθόδων, κληρονομικότητα, πολυμορφισμός, υπερκάλυψη, επίπεδα προσπέλασης Γαβαλάς Δαμιανός dgavalas@aegean.gr
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός
Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 7: Εξαιρέσεις (Exceptions), Εντοπισμός Σφαλμάτων (Debugging) Δρ. Χαράλαμπος Ζ. Πατρικάκης
Διαβάστε περισσότεραΓενικά (για τις γραπτές εξετάσεις)
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ INTERFACES ΕΣΩΤΕΡΙΚΕΣ ΚΛΑΣΕΙΣ (INNER CLASSES) Αφηρημένες Κλάσεις (Abstract Classes) (1/6) Οι αφηρημένες κλάσεις χρησιμοποιούνται για την
Διαβάστε περισσότεραΑντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Διαβάστε περισσότεραΑρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
Διαβάστε περισσότεραΑντικειµενοστραφής Προγραµµατισµός
Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΔιάλεξη Εισαγωγή στη Java, Μέρος B
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος B Collections & Generics Διαχείριση σφαλμάτων στην
Διαβάστε περισσότεραΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA
Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Χειρισμός Εξαιρέσεων Εξαίρεση (Exception) ένδειξη
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input
Διαβάστε περισσότεραΣΕΜΙΝΑΡΙΟ JAVA. 5 η ιάλεξη
ΣΕΜΙΝΑΡΙΟ JAVA 5 η ιάλεξη ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓ/ΣΜΟΣ & ΣΦΑΛΜΑΤΑ Εnumerators Κληρονοµικότητα Exceptions try / catch / finally Interfaces ENUMERATORS ( ENUM ) Τα enum είναι ένα εργαλείο για να οριστεί
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ
Διαβάστε περισσότεραΒασικά της γλώσσας JAVA
17 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότερα2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων
2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12
Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Διαβάστε περισσότεραAbstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες
Διαβάστε περισσότερα9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016
Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο 1 η Ενδιάμεση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ. Type Information. Μ. Δικαιάκος
ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ Type Information 2 Δυναμική Πληροφορία Τύπου Runtime type information (RTTI): μας επιτρέπει να ανακαλύπτουμε και να χρησιμοποιούμε δυναμικά (at run time) πληροφορίες για τον τύπο
Διαβάστε περισσότεραΚλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα
Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Σωρός Μεγίστου ως ΑΤΔ Ένας σωρός μεγίστου (max heap) είναι ένας ΑΤΔ που
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Χειρισμός Εξαιρέσεων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Διαβάστε περισσότερα