ΕΠΛ233 ΕΞΑΙΡΕΣΕΙΣ στη JAVA
|
|
- Δημοσθένης Αξιώτης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 ΕΞΑΙΡΕΣΕΙΣ στη JAVA
2 Σφάλματα προγραμμάτων Μ. Δικαιάκος Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Εξάντληση διαθέσιμης ιδεατής μνήμης, προσπάθεια ανάγνωσης εκτός των ορίων ενός πίνακα, διαίρεση με το μηδέν, πέρασμα άκυρων παραμέτρων σε μεθόδους, κλπ. Ιδανικός χρόνος ανίχνευσης σφαλμάτων:ο χρόνος μεταγλώττισης (αυτό δεν είναι δυνατό για όλα τα σφάλματα). Η C και οι περισσότερες γλώσσες παρέχουν μηχανισμούς αντιμετώπισης σφαλμάτων, οι οποίοι βασίζονται περισσότερο σε προγραμματιστικές συμβάσεις και δεν εντάσσονται στη σημασιολογία της γλώσσας. Π.χ.: Σε περίπτωση σφάλματος το οποίο ανιχνεύεται κατά τη στιγμή της εκτέλεσης μιας διαδικασίας, ο προγραμματιστής πρέπει να φροντίσει ώστε η διαδικασία να επιστρέφει κάποια ειδική τιμή, ή να εγείρει κάποια σημαία, ώστε να σηματοδοτήσει ότι κάτι έχει πάει λάθος. Έτσι, διαδικασίες οι οποίες ολοκληρώνονται κανονικά επιστρέφουν τιμή 0, ενώ διαδικασίες στις οποίες ανιχνεύεται κάποιο σφάλμα επιστρέφουν τιμή διαφορετική του μηδενός. Ο κώδικας από τον οποίο καλείται η διαδικασία που εγείρει το σφάλμα, μπορεί να ανιχνεύσει την τιμή επιστροφής της διαδικασίας και να διαχειριστεί αναλόγως την περίπτωση. 2
3 3 Μειονεκτήματα Πολύ συχνά οι προγραμματιστές δεν ακολουθούν οποιαδήποτε σύμβαση αναφορικά με τα σφάλματα. Έτσι, ο κώδικάς τους: Δεν ανιχνεύει σφάλματα. Δεν επιστρέφει τις κατάλληλες τιμές ή δεν εγείρει τις κατάλληλες σημαίες όταν ανιχνεύσει κάποιο σφάλμα. Δεν ελέγχει τις τιμές επιστροφής διαδικασιών ή τυχούσες σημαίες σφαλμάτων. Η εισαγωγή κώδικα διαχείρισης σφαλμάτων στα προγράμματα, έχει ως αποτέλεσμα ο κώδικας να γίνεται πολύπλοκος και δυσκολο-ανάγνωστος.
4 Προσέγγιση της JAVA Μ. Δικαιάκος Εντάσσει τη διαχείριση σφαλμάτων στη σημασιολογία της γλώσσας, επιβάλλοντας την ρητή αντιμετώπισή τους. Για τη διαχείριση σφαλμάτων, η JAVA εισάγει την έννοια της εξαίρεσης (exception). Οι εξαιρέσεις (ή συνθήκες εξαιρέσεως) είναι: Πρόβληματα τα οποία αποτρέπουν την συνέχιση της μεθόδου ή του πεδίου εμβέλειας στο οποίο βρίσκεται ο κώδικάς μας κατά την εκτέλεσή του. Προβλήματα για τα οποία δεν υπάρχει αρκετή πληροφορία στο τρέχον πεδίο εμβέλειας για να αντιμετωπισθούν και επομένως η κανονική ροή του προγράμματος πρέπει να διακοπεί. Όταν σε κάποιο σημείο το σύστημα εκτέλεσης ανιχνεύσει ένα σφάλμα (δηλαδή μια κατάσταση την οποία ο κώδικας στο σημείο αυτό δεν μπορεί να διαχειρισθεί),τότε εγείρει μια εξαίρεση και το πρόβλημα μετατίθεται σε ένα υψηλότερο συγκείμενο, το οποίο ίσως διαθέτει πληροφορίες για την κατάλληλη διαχείριση του σφάλματος. 4
5 Μ. Δικαιάκος Εξαιρέσεις στη JAVA H ανίχνευση κάποιου συγκεκριμένου σφάλματος και η διαχείρισή του δεν γίνεται με εισαγωγή κώδικα στα σημεία όπου αυτό μπορεί να προκύψει, αλλά σε ένα μόνο σημείο του κώδικα, τον αποκαλούμενο διαχειριστή εξαίρεσης (exception handler). Έτσι: Περιορίζεται ο κώδικας τον οποίο πρέπει να γράψουμε για ανίχνευση σφαλμάτων. Μπορούμε να διαχωρίσουμε τον κώδικα που περιγράφει το τι θέλουμε να επιτύχουμε από τον κώδικα που διαχειρίζεται τα σφάλματα. Τι γίνεται σε περίπτωση εξαίρεσης; Δημιουργείται ένα αντικείμενο εξαίρεσης (exception object) - όπως όλα τα αντικείμενα σώζεται στο σωρό. Το τρέχον μονοπάτι εκτέλεσης διακόπτεται και επιστρέφεται το χειριστήριο του αντικείμενου εξαίρεσης από το τρέχον πεδίο εμβέλειας. Ο μηχανισμός διαχείρισης σφαλμάτων του συστήματος εκτέλεσης της JAVA αναλαμβάνει να βρεί το σημείο από το οποίο μπορεί να συνεχιστεί η εκτέλεση του προγράμματος. Το σημείο αυτό είναι ο διαχειριστής εξαιρέσεων, ο οποίος αναλαμβάνει να ανανήψει το πρόγραμμα από το πρόβλημα και να συνεχίσει την εκτέλεση. 5
6 6 Εξαιρέσεις στη JAVA if (t == null) throw new NullPointerException(); if (t == null) throw new NullPointerException( t == null ); Η εντολή throw διακόπτει την τρέχουσα ροή εκτέλεσης και επιστρέφει από το τρέχον εγγράφημα δραστηριοποίησης, μεταφέροντας τον έλεγχο του προγράμματος σε κάποιον διαχειριστή εξαιρέσεων [η throw είναι ένα είδος return]. Με χρήση της throw μπορούμε να εγείρουμε οποιοδήποτε αντικείμενο εξαίρεσης, το οποίο ανήκει (ή κληρονομεί από) την κλάση Throwable. Εφόσον χρησιμοποιούμε την εντολή throw, πρέπει να θεωρήσουμε ότι όταν αυτή εκτελεσθεί και εγείρει μια εξαίρεση, είναι ξεκάθαρο ποιός διαχειριστής θα αναλάβει να την αντιμετωπίσει. Αυτό επιτυγχάνεται με την τοποθέτηση των εντολών throw εντός φυλασσόμενων περιοχών κώδικα (guarded regions), οι οποίες καθορίζονται από την εντολή try.
7 Η εντολή try και οι διαχειριστές εξαιρέσεων Μ. Δικαιάκος Try { // code that might generate exceptions catch(type1 id1) { // handle exceptions of type 1 catch(type2 id2) { // handle exceptions of type 2 catch(type3 id3) { // handle exceptions of type 3 Οι διαχειριστές τοποθετούνται αμέσως μετά το τέλος της φυλασσόμενης περιοχής. Εαν προκληθεί εξαίρεση, ο μηχανισμός διαχείρισής της ψάχνει για τον πρώτο διαχειριστή (catch), η παράμετρος του οποίου συμπίπτει με τον τύπο της εξαίρεσης. 7
8 8 Κατασκευή εξαιρέσεων class SimpleException extends Exception { public class SimpleExceptionDemo { public void f() throws SimpleException { System.out.println("Throw SimpleException from f()"); throw new SimpleException(); public static void main(string[] args { SimpleExceptionDemo sed = new SimpleExceptionDemo(); try { sed.f(); catch (SimpleException e) { System.err.println("Caught it!");
9 9 Κατασκευή εξαιρέσεων class MyException extends Exception { public MyException() { public MyException(String msg) { super (msg); public class FullConstructors { public static void f() throws MyException { System.out.println( "Throwing MyException from f()" ); throw new MyException(); public static void g() throws MyException { System.out.println( "Throwing MyException from g()" ); throw new MyException( "Originated in g()" ); public static void main(string[] args) { try { f(); catch (MyException e) {e.printstacktrace(); try { g(); catch (MyException e) {e.printstacktrace();
10 10 Ιεραρχία κλάσεων εξαιρέσεων Οι κλάση Exception της JAVA κληρονομεί από την κλάση Throwable, η οποία έχει μεθόδους όπως: printstacktrace: παρέχει πληροφορίες για την σειρά των μεθόδων οι οποίες εκλήθησαν ώστε να φθάσει η ροή εκτέλεσης στην εντολή η οποία προκάλεσε την εξαίρεση. getmessage: καθορίζει το περιεχόμενο του μηνύματος που εκτυπώνεται στη διάρκεια μιας εξαίρεσης.
11 11 Κατασκευή εξαιρέσεων class MyException2 extends Exception { private int x; public MyException2() { public MyException2(String msg) { super (msg); public MyException2(String msg, int x) { super(msg); this.x = x; public int val() { return x; public String getmessage() { return "Detail Message: "+x+" "+super.getmessage();
12 12 Κατασκευή εξαιρέσεων public class ExtraFeatures { public static void f() throws MyException2 { System.out.println("Throwing MyException2 from f()"); throw new MyException2(); public static void g() throws MyException2 { System.out.println("Throwing MyException2 from g()"); throw new MyException2("Originated in g()"); public static void h() throws MyException2 { System.out.println("Throwing MyException2 from h()"); throw new MyException2( "Originated in h()", 47); public static void main(string[] args) { try {f(); catch (MyException2 e) {e.printstacktrace(); try {g(); catch (MyException2 e) {e.printstacktrace(); try {h(); catch (MyException2 e) { e.printstacktrace(); System.err.println( "e.val() = " + e.val());
13 Ο προσδιορισμός των εξαιρέσεων Μ. Δικαιάκος Η JAVA ενθαρρύνει την ενημέρωση αυτών που χρησιμοποιούν κάποια μέθοδο σχετικά με τις εξαιρέσεις τις οποίες μπορεί να εγείρει αυτή η μέθοδος (γιατί;). Για τον σκοπό αυτό, το συντακτικό της γλώσσας παρέχει την εντολή throws με την οποία δηλώνεται ποιές εξαιρέσεις μπορεί να εγερθούν στο σώμα κάποιας μεθόδου (προσδιορισμός εξαιρέσεων - exception specification). Η χρήση της throws είναι υποχρεωτική και επιβάλλεται από τον μεταγλωττιστή, ακολουθώντας τη δήλωση των παραμέτρων της μεθόδου: void f() throws TooBig, TooSmall, DivZero { // Υπάρχει η δυνατότητα μια μέθοδος να δηλώσει ότι εγείρει κάποια εξαίρεση ενώ δεν περιλαμβάνει στο σώμα της την αντίστοιχη εντολή throw (γιατί παρέχεται η δυνατότητα αυτή;) 13
14 Διαχείριση εξαιρέσεων Μ. Δικαιάκος Στα προγράμματά μας μπορούμε να εισαγάγουμε διαχειριστές εξαιρέσεων, οι οποίοι να διαχειρίζονται οποιεσδήποτε εξαιρέσεις. Αυτό το επιτυγχάνουμε πιάνοντας εξαιρέσεις (γενικού) τύπου Exception. Επειδή η Exception δεν παρέχει πολλές πληροφορίες για το συγκείμενο μιας εξαίρεσης, έχουμε τη δυνατότητα να ορίσουμε νέες κλάσεις εξαιρέσεων, κληρονομώντας από την Exception και αναιρώντας μεθόδους της Exception, της Throwable και της Object: getmessage() getlocalizedmessage() tostring() printstacktrace() fillinstacktrace() getclass() 14
15 15 Επανέγερση εξαίρεσης Σε ορισμένες περιπτώσεις επιθυμούμε να εγείρουμε μια εξαίρεση που έχουμε συλλάβει σε κάποιο σημείο του κώδικά μας, ώστε η διαχείριση της να αναληφθεί από το αμέσως επόμενο συγκείμενο. Αυτό προκύπτει αν πιάσουμε μια γενική εξαίρεση (Exception) και θελήσουμε να την παραπέμψουμε σε έναν πιό εξειδικευμένο διαχειριστή. Σε τέτοια περίπτωση, το αντικείμενο της εξαίρεσης διατηρείται και μεταφέρεται στον επόμενο διαχειριστή, ο οποίος έχει πρόσβαση στα περιεχόμενα του αντικειμένου εξαίρεσης.
16 16 Επανέγερση εξαίρεσης Όταν επανεγείρουμε μια εξαίρεση, τα περιεχόμενα της printstacktrace() εξακολουθούν να αφορούν στο σημείο στο οποίο προκλήθηκε η αρχική εξαίρεση, και όχι στο σημείο στο οποίο επανεγείραμε την εξαίρεση. Αν θέλουμε να συνδυάσουμε το αντικείμενο εξαίρεσης με νέα πληροφορία για το ίχνος της στοίβας (stack trace), μπορούμε να καλέσουμε τη μέθοδο fillinstacktrace(). H fillinstacktrace() δημιουργεί ένα αντικείμενο Throwable, προσθέτοντας την τρέχουσα κατάσταση της στοίβας στο αρχικό αντικείμενο της εξαίρεσης. Το νέο αντικείμενο Throwable, επιστρέφεται από την fillinstacktrace().
17 Επανέγερση εξαίρεσης public class Rethrowing { public static void f() throws Exception { System.out.println("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("Inside g(),e.printstacktrace()"); e.printstacktrace(); throw e; public static void main(string[] args) throws Throwable { try { g(); catch(exception e) { System.err.println("Caught in main, e.printstacktrace()"); e.printstacktrace(); Μ. Δικαιάκος 17
18 Επανέγερση εξαίρεσης public class Rethrowing { public static void f() throws Exception { System.out.println("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("Inside g(),e.printstacktrace()"); e.printstacktrace(); throw e; public static void main(string[] args) throws Throwable { try { g(); catch(exception e) { System.err.println("Caught in main, e.printstacktrace()"); e.printstacktrace(); magnaura.cs.ucy.ac.cy>java Rethrowing originating the exception in f() Inside g(),e.printstacktrace() java.lang.exception: thrown from f() at Rethrowing.f(Rethrowing.java:5) at Rethrowing.g(Rethrowing.java:10) at Rethrowing.main(Rethrowing.java:21) Caught in main, e.printstacktrace() java.lang.exception: thrown from f() at Rethrowing.f(Rethrowing.java:5) at Rethrowing.g(Rethrowing.java:10) at Rethrowing.main(Rethrowing.java:21) Μ. Δικαιάκος 18
19 19 Επανέγερση εξαίρεσης public class Rethrowing { public static void f() throws Exception { System.out.println("originating exception in f()"); throw new Exception("thrown from f()"); public static void g() throws Throwable { try { f(); catch(exception e) { System.err.println("In g(),e.printstacktrace()"); e.printstacktrace(); throw e.fillinstacktrace(); // returns Throwable object public static void main(string[] args) throws Throwable { try { g(); catch(exception e) { System.err.println("Caught in main, e.printstacktrace()"); e.printstacktrace();
20 20 Επανέγερση εξαίρεσης public class Rethrowing { public static void f() throws Exception { System.out.println("originating exception in f()"); throw new Exception("thrown from f()"); public static void g() throws Throwable { try { f(); catch(exception e) { System.err.println("In g(),e.printstacktrace()"); e.printstacktrace(); throw e.fillinstacktrace(); // returns Throwable object public static void main(string[] args) throws Throwable { try { g(); catch(exception e) { System.err.println("Caught in main, e.printstacktrace()"); e.printstacktrace(); magnaura.cs.ucy.ac.cy>java Rethrowing originating exception in f() In g(),e.printstacktrace() java.lang.exception: thrown from f() at Rethrowing.f(Rethrowing.java:5) at Rethrowing.g(Rethrowing.java:10) at Rethrowing.main(Rethrowing.java:21) Caught in main, e.printstacktrace() java.lang.exception: thrown from f() at Rethrowing.g(Rethrowing.java:15) at Rethrowing.main(Rethrowing.java:21)
21 Επανέγερση εξαίρεσης Αν επανεγείρουμε εξαίρεση διαφορετικού τύπου, τότε χάνουμε την πληροφορία σχετικά με το σημείο όπου εγέρθηκε η αρχική εξαίρεση και λαμβάνουμε (μέσω της printstacktrace) πληροφορίες για το σημείο της νέας εντολής throw. Μ. Δικαιάκος 21
22 Επανέγερση εξαίρεσης class OneException extends Exception { public OneException(String s) { super(s); class TwoException extends Exception { public TwoException(String s) { super(s); public class RethrowNew { public static void f() throws OneException { System.out.println("originating exception in f()"); throw new OneException("thrown from f()"); public static void main(string[] args) throws TwoException { try { f(); catch(oneexception e) { System.err.println("Caught in main,e.printstacktrace()"); e.printstacktrace(); throw new TwoException("from main"); magnaura.cs.ucy.ac.cy>java RethrowNew originating the exception in f() Caught in main, e.printstacktrace() OneException: thrown from f() at RethrowNew.f(RethrowNew.java:13) at RethrowNew.main(RethrowNew.java:18) Exception in thread "main" TwoException: from main at RethrowNew.main(RethrowNew.java:23) Μ. Δικαιάκος 22
23 Αλισυδωτές εξαιρέσεις (exception chaining) Μ. Δικαιάκος Συχνά θέλουμε, πιάνοντας μια εξαίρεση, να εγείρουμε κάποια άλλη, διατηρώντας ταυτόχρονα την πληροφορία για την αρχική εξαίρεση. Από το JDK 1.4 και μετά, οι υποκλάσεις της Throwable δέχονται ένα αντικείμενο cause στον κατασκευαστή τους, το οποίο αποτελεί την αρχική εξαίρεση. Περνώντας το cause στον κατασκευαστή, διατηρείται το πλήρες ίχνος της στοίβας μέχρι την αρχική εξαίρεση, παρʼ ότι δημιουργούμε και εγείρουμε νέα εξαίρεση. Οι υποκλάσεις της Throwable που δέχονται την παράμετρο cause στον κατασκευαστή τους είναι οι θεμελιώδεις εξαιρέσεις Error (used by the JVM to report system errors), Exception, και RuntimeException. Αν θέλετε να αλυσοδέσετε άλλους τύπους εξαιρέσεων, πρέπει να το κάνετε μέσω της μεθόδου initcause( ). 23
24 Μ. Δικαιάκος Βασικές εξαιρέσεις στη JAVA Η κλάση Throwable περιγράφει ο,τιδήποτε μπορεί να εγερθεί σαν εξαίρεση, και έχει δύο γενικές υποκλάσεις: Error: αντιστοιχεί σε σφάλματα στη διάρκεια της μεταγλώττισης ή σφάλματα συστήματος, για τα οποία ο προγραμματιστής δεν χρειάζεται να τα πιάσει. Exception:ο βασικός τύπος σφάλματος ο οποίος μπορεί να εγερθεί από οποιαδήποτε μέθοδο των καθιερωμένων βιβλιοθηκών της Java. Ο καλύτερος τρόπος για να δείτε ποιές είναι οι διάφορες εξαιρέσεις που εγείρει η Java, είναι να πλοηγηθείτε στο εγχειρίδιό της. Η διαφορά των εξαιρέσεων μεταξύ τους έγκειται κατά κύριο λόγο στα διαφορετικά ονόματα που έχουν -μέσω των οποίων σηματοδοτείται το πρόβλημα στο οποίο αντιστοιχούν. Οι διάφορες εξαιρέσεις ορίζονται στη βιβλιοθήκη java.lang, αλλά και σε άλλες υποστηρικτικές βιβλιοθήκες όπως util,net, και io. 24
25 25 Runtime Exceptions Στη JAVA υπάρχει μια ολόκληρη κατηγορία από εξαιρέσεις οι οποίες εγείρονται αυτόματα από το σύστημα εκτέλεσης της γλώσσας και για τις οποίες ο προγραμματιστής δεν υποχρεούται από το μεταγλωττιστή να τις λάβει υπόψη του στον προσδιορισμό των εξαιρέσεων των μεθόδων του. Όλες αυτές οι εξαιρέσεις είναι κληρονόμοι μιας κλάσης βάσης, της RuntimeException. Οι εξαιρέσεις αυτού του τύπου αντιστοιχούν συνήθως είτε σε καταστάσεις τις οποίες δεν μπορεί να ελέγξει ο προγραμματιστής (π.χ. πέρασμα λάθος τιμής παραμέτρου σε μια μέθοδο του) είτε σε λογικά σφάλματα του προγράμματος. Εάν μια εξαίρεση τύπου RuntimeException δεν ανιχνευθεί από κάποιο διαχειριστή εξαίρεσης, θα φθάσει μέχρι το πλαίσιο συμφραζομένων της main, και θα προκαλέσει έξοδο του προγράμματος με προηγούμενη κλήση της PrintStackTrace, για διευκόλυνση της αποσφαλμάτωσης.
26 Περιορισμοί εξαιρέσεων Μ. Δικαιάκος Όταν υπερσκελίζουμε μια μέθοδο (κατά την εφαρμογή κληρονομικότητας), μπορούμε να εγείρουμε µόνο εξαιρέσεις οι οποίες καθορίζονται στην κλάση-βάσης της μεθόδου που υπερσκελίζουμε. Ο περιορισμός αυτός υπάρχει ούτως ώστε κώδικες που δουλεύουν με μια κλάση, να δουλεύουν σωστά και με κάθε αντικείμενο που κληρονομεί από αυτή την κλάση. Οι περιορισμοί κληρονομικότητας των εξαιρέσεων δεν ισχύουν για τους κατασκευαστές. Ένας κατασκευαστής μπορεί να εγείρει ό,τι εξαιρέσεις θέλει. ωστόσο, επειδή η κλήση του εμπεριέχει κλήση στον κατασκευαστή της βάσης του, ο κατασκευαστής πρέπει να δηλώνει όλες τις εξαιρέσεις του κατασκευαστή βάσης του, στον προσδιορισμό των δικών του εξαιρέσεων. Σημειώστε ότι ένας κατασκευαστής δεν μπορεί να ανιχνεύει τις εξαιρέσεις που εγείρει ο κατασκευαστής της κλάσης του πατέρα του. 26
27 27 Περιορισμοί εξαιρέσεων class BaseballException extends Exception { class Foul extends BaseballException { class Strike extends BaseballException { abstract class Inning { public Inning() throws BaseballException { public void event() throws BaseballException { public abstract void atbat() throws Strike, Foul; public void walk() { class StormException extends Exception { class RainedOut extends StormException { class PopFoul extends Foul { interface Storm { public void event() throws RainedOut; public void rainhard() throws RainedOut;
28 28 Περιορισμοί εξαιρέσεων public class StormyInning extends Inning implements Storm { // 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: //! void walk() throws PopFoul { //Compile error: Interface CANNOT add exceptions to existing // methods from the base class: //! public void event() throws RainedOut { // 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() {
29 29 Περιορισμοί εξαιρέσεων // Overridden methods can throw inherited exceptions: public void atbat() throws PopFoul { public static void main(string[] args) { try { StormyInning si = new StormyInning(); si.atbat(); catch(popfoul e) {System.err.println( "Pop foul" ); catch(rainedout e){system.err.println( "Rained out"); catch(baseballexception e) { System.err.println("Generic" );
30 30 Περιορισμοί εξαιρέσεων // Strike not thrown in derived version. try {// What happens if you upcast? Inning i = new StormyInning(); i.atbat(); // You must catch the exceptions from the // base-class version of the method: catch (Strike e) { System.err.println( "Strike" ); catch (Foul e) { System.err.println( "Foul" ); catch (RainedOut e){system.err.println( "Rained out" ); catch (BaseballException e) { System.err.println( "Generic baseball exception" );
31 Παρατηρήσεις Μ. Δικαιάκος It s useful to realize that although exception specifications are enforced by the compiler during inheritance, the exception specifications are not part of the type of a method, which comprises only the method name and argument types. Therefore, you cannot overload methods based on exception specifications. Just because an exception specification exists in a base-class version of a method doesn t mean that it must exist in the derived-class version of the method. This is quite different from inheritance rules, where a method in the base class must also exist in the derived class. Put another way, the exception specification interface for a particular method may narrow during inheritance and overriding, but it may not widen this is precisely the opposite of the rule for the class interface during inheritance. 31
Διάλεξη 14: Εξαιρέσεις (Exceptions) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 14: Εξαιρέσεις (Exceptions) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εξαιρέσεις (Exception) - Δήλωση, Διαχείριση, Έγερση Εξαιρέσεων - try, catch, finally, try-with-resources
Διαβάστε περισσότεραΕΞΑΙΡΕΣΕΙΣ στη JAVA. Σφάλματα προγραμμάτων. Μειονεκτήματα. Προσέγγιση της JAVA
ΕΞΑΙΡΕΣΕΙΣ στη JAVA Σφάλματα προγραμμάτων Τα σφάλματα ενός προγράμματος προκαλούνται από διάφορες καταστάσεις, όπως: Εξάντληση διαθέσιμης ιδεατής μνήμης, προσπάθεια ανάγνωσης εκτός των ορίων ενός πίνακα,
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων
Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου
Διαβάστε περισσότεραΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα
ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται
Διαβάστε περισσότεραΕξαιρέσεις στην Java EXCEPTIONS IN JAVA
Εξαιρέσεις στην Java EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 3: 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 Περιεχόμενα Μαθήματος
Διαβάστε περισσότερα6. Εξαιρέσεις στη γλώσσα Java
6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότερα(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Διαβάστε περισσότεραΑρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
Διαβάστε περισσότεραΕξαιρέσεις στη Java. Περιεχόμενα. Κάποιες προκαθορισμένες ρ εξαιρέσεις. Κωστής Σαγώνας
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε
Διαβάστε περισσότεραΧειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:
Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που
Διαβάστε περισσότεραΠρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη
9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή
Διαβάστε περισσότεραΤο πρόγραμμα 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 υποστηρίζει
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών
Διαβάστε περισσότεραΔιάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))
Διαβάστε περισσότεραΧειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA
Χειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός
Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 7: Εξαιρέσεις (Exceptions), Εντοπισμός Σφαλμάτων (Debugging) Δρ. Χαράλαμπος Ζ. Πατρικάκης
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.
Διαβάστε περισσότεραΕξαιρέσεις (στη 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]);
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]
Διαβάστε περισσότεραΕργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΠεριεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Κληρονομικότητα (Inheritance) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κληρονομικότητα και Επαναχρησιμοποίηση - Υποκλάσεις/Υπερκλάσεις - Απόκρυψη ονομάτων - Το super, protected
Διαβάστε περισσότεραΚωστής Σαγώνας Πιάσιμο εξαιρέσεων (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
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
Διαβάστε περισσότεραΕξαιρέσεις. try, catch, finally, throw, throws
Εξαιρέσεις try, catch, finally, throw, throws Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότεραΚληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1
Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΔιάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]
Διαβάστε περισσότεραΑντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραΔομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.
Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Χειρισμός Εξαιρέσεων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Διαβάστε περισσότεραΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ. Type Information. Μ. Δικαιάκος
ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ Type Information 2 Δυναμική Πληροφορία Τύπου Runtime type information (RTTI): μας επιτρέπει να ανακαλύπτουμε και να χρησιμοποιούμε δυναμικά (at run time) πληροφορίες για τον τύπο
Διαβάστε περισσότεραΕξαιρέσεις (στη Java)
Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ
Διαβάστε περισσότεραΕργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:
Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies Μαθήματα από το εργαστήριο Όταν η εκφώνηση σας ζητάει να φτιάξετε μία μέθοδο που παίρνει
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 10 Exceptions handling (Χειρισμός εξαιρέσεων)
Διαβάστε περισσότεραΕισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA
Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)
Διαβάστε περισσότεραEPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 16/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Τύποι της Java Primitives vs References Οι πρωταρχικοί
Διαβάστε περισσότεραΓενικά (για τις γραπτές εξετάσεις)
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 23/4/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Υπερφόρτωση μεθόδων Υπερφόρτωση μεθόδων Πολλαπλές
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract
Διαβάστε περισσότεραΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)
1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 9η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cp
Διαβάστε περισσότεραΔομές Δεδομένων - Εργαστήριο 2. Λίστες
Λίστες Λίστες (Lists) : Συλλογή δεδομένων σε δυναμικά δεσμευμένους κόμβους. Κάθε κόμβος περιέχει συνδέσεις προς άλλους κόμβους. Προσπέλαση -στού κόμβου διατρέχοντας όλους τους προηγούμενους. Πολλές παραλλαγές
Διαβάστε περισσότεραΥπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods
(Object Oriented Programming) Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος
Διαβάστε περισσότεραΠρογραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πίνακες Αντικειμένων Όπως στην C μπορούμε να έχουμε πίνακες από
Διαβάστε περισσότεραΚατασκευαστές. Μέθοδοι Κατασκευής (Constructors).
Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον
Διαβάστε περισσότεραΚλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα
Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής
Διαβάστε περισσότεραΟρισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα
ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων
Διαβάστε περισσότεραΑντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input
Διαβάστε περισσότερα9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016
Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο 1 η Ενδιάμεση
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραpublic void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ INTERFACES ΕΣΩΤΕΡΙΚΕΣ ΚΛΑΣΕΙΣ (INNER CLASSES) Αφηρημένες Κλάσεις (Abstract Classes) (1/6) Οι αφηρημένες κλάσεις χρησιμοποιούνται για την
Διαβάστε περισσότεραΤμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.
Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2018-19, Χειμερινό Εξάμηνο 1 η Ενδιάμεση
Διαβάστε περισσότεραΤι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;
Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class
Διαβάστε περισσότεραΠαύλος Εφραιµίδης. Java. Κληρονοµικότητα
κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά
Διαβάστε περισσότεραΜέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων
Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου
Διαβάστε περισσότεραιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java
ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Χειρισμός Εξαιρέσεων Εξαίρεση (Exception) ένδειξη
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το
Διαβάστε περισσότεραOι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:
3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται
Διαβάστε περισσότεραΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA
Βασικά στοιχεία προγραµµατισµού στη JAVA Διαχείριση Μνήµης 3 Δέσμευση Μνήμης Ο καλός προγραμματισμός επιβάλλει την αποδοτική χρήση της μνήμης του Η/Υ. Είναι σημαντικό να καταλαβαίνουμε τις διαδικασίες
Διαβάστε περισσότεραΠρογράμματα με δομή Κληρονομικότητας
Προγράμματα με δομή Κληρονομικότητας Η μέθοδος print της εφαρμογής DoME Η μέθοδος print στην κλάση Item τυπώνει: title: A Swingin Affair (64 mins) my favorite Sinatra album title: O Brother, Where Art
Διαβάστε περισσότερα