ιάλεξη 3 Τµήµα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισµικού Χειµερινό Εξάµηνο ιάλεξη 3

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ιάλεξη 3 Τµήµα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισµικού Χειµερινό Εξάµηνο ιάλεξη 3"

Transcript

1 ιάλεξη 3 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces - Serializable, Comparable Properties & NetworkInterface Regular expressions ιάλεξη 3 1

2 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 3 2

3 Εξωτερικές διεργασίες Η Java σχεδιάστηκε µε σκοπό να παρέχει στις εφαρµογές ανεξαρτησία από το περιβάλλον εκτέλεσης. Όµως, υπάρχουν περιπτώσεις που θέλουµε να εκτελέσουµε µια εφαρµογή που να σχετίζεται µε το λειτουργικό σύστηµα που βρισκόµαστε. Η µεθοδολογία που ακολουθούµε είναι να δηµιουργούµε µια νέα διεργασία µέσα στην εφαρµοφή µας που θα εκτελεί platform dependent ενέργειες. Η κλάση Runtime αποτελεί µια διεπαφή µε το περιβάλλον που τρέχει η εφαρµογή µας getruntime(): µας επιστρέφει ένα αντικείµενο τύπου Runtime για την ίδια µας την εφαρµογή exec(string[] cmdandαrgs): δηµιουργεί νέα διεργασία που εκτελεί την εντολή µε παραµέτρους που της περνάµε σαν όρισµα Process p = Runtime.getRuntime().exec("/bin/ls"); Προσοχή!! Η java ανακατευθύνει τα stdin, stdout, stderr. Για να αλληλεπιδράσουµε µε την διεργασία πρέπει να χρησιµοποιήσουµε τις µεθόδους getinputstream(), getoutputstream() και geterrorstream() που µας παρέχει το αντικείµενο τύπου Process. ιάλεξη 3 3

4 Παράδειγµα Εκτελούµε την ls που βρίσκεται στον κατάλογο /bin Η getinputstream µας παρέχει πρόσβαση στο output stream της διεργασίας παιδιού. Τα δεδοµένα αυτά αποτελούν input stream για την main Κάνουµε buffered το input stream και διαβάζουµε γραµµή-γραµµή τα δεδοµένα Κλείνουµε πάντα τις ροές!! ιάλεξη 3 4

5 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 3 5

6 Collections Ως Collections ορίζονται αντικείµενα που οµαδοποιούν άλλα αντικείµενα σε µια οντότητα. Τα Collections µας παρέχουν επιπλέον ένα framework για να αποθηκεύσουµε και να διαχειριστούµε τα αντικείµενα αυτά. Ένα collection framework περιλαµβάνει: Interfaces: διεπαφή για να χειριστούµε/προσπελαύνουµε µε τον ίδιο τρόπο collections που διαθέτουν διαφορετικές λεπτοµέρειες υλοποίησης Κλάσεις: περιλαµβάνουν υλοποιηµένες κλάσεις των Interfaces. Συνιστούν βιβλιοθήκη για τις εφαρµογές µας. Αλγορίθµους: αλγόριθµοι όπως η αναζήτηση, ταξινόµηση αντικειµένων υλοποιούνται µε διαφορετικό τρόπο ως µέθοδοι των διαφόρων κλάσεων. Οι αλγόριθµοι αυτοί είναι πολυµορφικοί µιας και η ίδια µέθοδος διαφέρει ανάλογα µε το collection interface. Μερικά από τα χαρακτηριστικά και προτερήµατα από την χρήση collection framework: Έτοιµος κώδικας για χρήση από τις εφαρµογές µας Data structures εµπλουτισµένα µε αλγόριθµους για γρήγορη προσπέλαση Ενιαίο API για χρήση, ανεξάρτητο από τις λεπτοµέρειες υλοποίησης ιάλεξη 3 6

7 Collection interfaces ιαφορετικά είδη collection interfaces συνιστούν µια ιεραρχία και καθορίζουν διαφορετικούς τύπους αποθήκευσης και χειρισµού αντικειµένων. Collection: είναι η ρίζα στην ιεραρχία των collections και δεν υλοποιείται από κάποια κλάση. Χρησιµοποιείται συνήθως για την επικοινωνία collections µε γενικό τρόπο. Set: ορίζει µια συλογή στην οποία δεν µπορούν να υπάρχουν διπλότυπα αντικείµενα. List: συνιστά µια συλλογή από αντικείµενα που εµφανίζουν µια σειρά. Μπορούµε να προσπελάσουµε ένα αντικείµενο µε χρήση κάποιου index. Queue: collection που εµφανίζει τις ιδιότητες της ουράς. Map: collection που αντιστοιχεί κάποιο αντικείµενο µε ένα κλειδί. SortedSet: διαθέτει τις ίδιες ιδιότητες µε το Set, µόνο που χειρίζεται τα αντικείµενα µε σειρά. SortedMap: διαθέτει τις ίδιες ιδιότητες µε το Map, καθώς επίσης τα κλειδιά είναι ταξινοµηµένα. ιάλεξη 3 7

8 Collection implementation Η υλοποίηση των Collection interfaces µπορεί να γίνει µε διαφορετικούς τρόπους. Οι υπάρχουσες κατηγορίες συνοψίζονται παρακάτω: General-purpose implementations σε αυτή την κατηγορία βρίσκουµε τις πιο συχνά χρησιµοποιούµενες κλάσεις για collections. Special-purpose implementations κλάσεις για ειδικό σκοπό εµφανίζονται στην κατηγορία αυτή που παρουσιάζουν πολλές φορές µη αποδοτική συµπεριφορά. Concurrent implementations η υλοποίηση που παρέχεται εξασφαλίζει την ταυτόχρονη προσπέλαση των αντικειµένων αυτής της κατηγορίας από πολυνηµατικά περιβάλλοντα (java.util.concurrent package). Wrapper implementations χρησιµοποιούνται σε συνδυασµό µε general-purpose υλοποιήσεις για να παρέχουν επιπλέον λειτουργικότητα. Convenience implementations collections που είναι σχεδιασµένα µε static συµπεριφορά (πχ singleton sets). Abstract implementations παρέχουν abstract κλάσεις για custom υλοποίηση από τον χρήστη. Πιο συχνή είναι η χρήση general-purpose implementations και συγκεκριµένα Set HashSet, TreeSet, LinkedHashSet List ArrayList, LinkedList Map HashMap, TreeMap, LinkedHashMap Κάθε µια από τις κλάσεις παρέχει υλοποίηση όλων των µεθόδων που έχουν συµφωνηθεί στο interface. εν είναι thread-safe. Παρέχουν iterators για προσπέλαση στοιχείων. Είναι Serializable και υποστηρίζουν την clone(). ιάλεξη 3 8

9 Προσπέλαση ενός Collection Υπάρχουν δυο τρόποι για να προσπελάσει κανείς κάποιο collection αντικείµενο, και κατά συνέπεια τα στοιχεία που το αποτελούν, ανεξάρτητα από τις λεπτοµέρειες υλοποίησης: Με χρήση της δοµής ελέγχου for-each Με χρήση Iterator. Η δοµή ελέγχου for-each µας επιτρέπει να προσπελάσουµε µε συνέπεια το σύνολο των στοιχείων ενός collection (ή ενός πίνακα array). for (Object o : collection) System.out.println(o); Ο Iterator είναι ένα interface που µας δίνει µεθόδους για να προσπελάσουµε ένα collection καθώς και να διαγράψουµε στοιχεία του. Κάθε Collection υλοποιεί τη µέθοδο Iterator() µας επιστρέφει ένα αντικείµενο τύπου Iterator. public interface Iterator<E> { boolean hasnext(); E next(); void remove(); //optional static void filter(collection<?> c) { for (Iterator<?> it = c.iterator(); it.hasnext(); ) if (!cond(it.next())) it.remove(); ιάλεξη 3 9

10 Άλλα χρήσιµα χαρακτηριστικά... Bulk operations containsall(): ελέγχουµε αν ένα collection περιέχει όλα τα στοιχεία ενός άλλου. addall(): «συνενώνει» δυο collections. removeall(): διώχνει τα στοιχεία από ένα collection που εµφανίζονται σε ένα άλλο (διαφορά συνόλων). retainall(): η αντίστροφη διαδικασία από το removeall. Clear(): αδειάζουµε ένα collection από τα στοιχεία του. size() Μας επιστρέφει το πλήθος των στοιχείων που διατηρεί το collection toarray() Μέθοδος που µας επιτρέπει να µετατρέψουµε τα στοιχεία ενός collection σε πίνακα από αντικείµενα Collection<String> c Object[] a = c.toarray(); ή και String[] a = (String[]) c.toarray(new String[c.size()]); ιάλεξη 3 10

11 Generics Χαρακτηριστικό που εµφανίστηκε στην Java SE 5. Μας παρέχει type-safety at compile time και κατά συνέπεια να αποφεύγουµε τον κίνδυνο για ClassCastException κατά την εκτέλεση. Τα generics είναι άµεσα συνδεδεµένα µε την χρήση Collections. List myintlist = new LinkedList(); myintlist.add(new Integer(0)); Integer x = (Integer) myintlist.iterator().next(); List<Integer> myintlist = new LinkedList<Integer>(); myintlist.add(new Integer(0)); Integer x = myintlist.iterator().next(); Πως δουλεύει ο compiler µε την ύπαρξη generics (Type Erasure) Σβήνει τα generics για να µείνουν raw types, για παράδειγµα ArrayList<String> ArrayList. Εισάγει type casting στα κατάλληλα σηµεία µέσα στον κώδικα. Τα generics µας παρέχουν µια ευχέρεια για το συντακτικό της γλώσσας και δεν κρατούν πληροφορίες για τον τύπο αντικειµένων κατά την διάρκεια της εκτέλεσης. ιάλεξη 3 11

12 Η χρήση των Generics µέσα από παραδείγµατα Set setofrawtype = new HashSet<String>(); setofrawtype = new HashSet<Integer>(); Set<Object> setofanytype = new HashSet<Object>(); setofanytype.add("abc"); setofanytype.add(new Float(3.0f)); Set<?> setofunknowntype = new LinkedHashSet<String>(); setofunknowntype = new LinkedHashSet<Integer>(); Set<String> setofstring = new HashSet<String>(); setofstring = new LinkedHashSet<String>(); Set<Object> SetOfObject = new HashSet<String>(); //compiler error ιάλεξη 3 12

13 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 3 13

14 Σφάλµατα στην Java (1/2) Τα σφάλµατα (Bugs) είναι το συνηθέστερο πρόβληµα ενός προγράµµατος Προγραµµατιστικά λάθη Λάθη σχεδιασµού Λάθος είσοδος δεδοµένων Αστοχία υλικού Μη ελεγχόµενοι, εξωγενείς παράγοντες Κάθε προγραµµατιστής πρέπει να διαχειρίζεται τις καταστάσεις: Στην C: Κάθε συνάρτηση γυρνά κάποια τιµή ενώ παράλληλα η perror τυπώνει το σφάλµα που συνέβη. Στην Java: Χρήση εξαιρέσεων (exceptions). Υπάρχουν δύο είδη, οι ελεγχόµενες εξαιρέσεις (checked) και µη ελεγχόµενες (unchecked). ιάλεξη 3 14

15 Σφάλµατα στην Java (2/2) Κατά την εκτέλεση ενός προγράµµατος όταν συµβεί σφάλµα σε κάποια συνάρτηση που εκτελείται, αυτή δηµιουργεί ένα αντικείµενο (exception object) και το παραδίδει στο runtime system (κάνει throw ένα exception). Ένα exception αντικείµενο περιέχει πληροφορίες για το είδος του σφάλµατος που συνέβη, την κατάσταση του προγράµµατος µας τη στιγµή του exception κ.α... To runtime system ψάχνει για κάποιο handler ορισµένο από τον προγραµµατιστή που διαχειρίζεται αυτό το σφάλµα (κάνει catch το exception). Η αναζήτηση ξεκινά ιεραρχικά από την τρέχουσα συνάρτηση που συνέβη το σφάλµα και φτάνει µέχρι την main. Throws exception method3() Forwards exception method2() Call stack trace Catch exception method1() ιάλεξη 3 main() 15

16 Κατηγορίες exceptions Η Java µας παρέχει τριών ειδών exceptions. Όλα έχουν ως υπερκλάση την java.lang.throwable Checked exceptions: Error: Ορίζουν exceptional conditions όπου µια εφαρµογή θα πρέπει να κάνει recover. Υπόκεινται στο Catch or Specify Requirement, αφού και το πρόγραµµα µας θα πρέπει να διαθέτει handlers για να τα κάνει catch και να δώσει προς τον χρήστη κάποιο διαγνωστικό µήνυµα. Όλα τα exceptions θεωρούνται checked, εκτός από αυτά που ανήκουν στις κλάσεις Error, RunTimeException και τις αντίστοιχες υποκλάσεις τους Ορίζουν exceptional conditions που οφείλονται σε εξωτερικούς από την εφαρµογή παράγοντες και η εφαρµογή συνήθως δεν µπορεί να προβλέψει και να κάνει recover. Συνήθως οι λόγοι είναι αστοχία στο hardware. εν υπόκεινται στο Catch or Specify Requirement και το πιο πιθανό είναι να τυπωθεί το stack trace µέχρι το σηµείο που συνέβη το exception και το πρόγραµµα µας να τερµατίσει. Runtime exceptions/unchecked exceptions: Ορίζουν exceptional conditions που οφείλονται σε λογικά λάθη του προγραµµατιστή. Το πιο δηµοφιλές exception σε αυτή την κατηγορία είναι το NullPointerException!! εν υπόκεινται στο Catch or Specify Requirement και ανήκουν στην κλάση RunTimeException ιάλεξη 3 16

17 Exception handler Εάν δεν θέλουµε να διαχειριστούµε κάποιο/α ExceptionType, τότε εισάγουµε στο header της εκάστοτε συνάρτησης την δήλωση throw ExceptionType Η Java µας παρέχει τρία exception handler components. Τα try, catch, και finally blocks µας επιτρέπουν να ορίσουµε τον δικό µας exception handler. try { code catch (ExceptionType name) { System.err.println(...);... catch (ExceptionType name) {... finally { System.err.println(...);... Περικλείω µέσα στο try block κοµµάτι της εφαρµογής µου που υπάρχει πιθανότητα να γίνει throw ένα exception. Κάθε catch block ορίζει έναν exception handler, για ένα δεδοµένο τύπο exception. Συνήθως τυπώνουν διαγνωστικό µήνυµα προς το χρήστη. Το finally block εκτελείται πάντα, είτε συµβεί exception είτε όχι. Συνήθως γράφουµε σ αυτό clean up κώδικα. ιάλεξη 3 17

18 Η ανώτερη ιεραρχικά κλάση διαχειρίζεται και τα 2 πιθανά σφάλµατα. Το σφάλµα θα το διαχειριστεί η καλούσα µέθοδος. Γιατί θα έχουµε πρόβληµα εδώ; Χρήση 2 διαδοχικών exceptions για να καλύψουµε τις περιπτώσεις απώλειας του αρχείου και σφάλµατος εγγραφής. ιάλεξη 3 18

19 ιαχειριζόµαστε το exception όπως το ζητά η αντίστοιχη µέθοδος. Η χρήση του stack trace που µας δίνει κάθε exception επιτρέπει την αποσφαλµάτωση του προγράµµατός µας. Η διαδικασία είναι η εξής: 1.Αναζητούµε την πρώτη δική µας κλήση που δηµιούργησε πρόβληµα (από πάνω προς τα κάτω). 2.Ανατρέχουµε στην αντίστοιχη γραµµή του κώδικά µας. Το σηµείο αυτό έχει πρόβληµα. 3.Ανάλογα µε το πρόβληµα ελέγχουµε την είσοδο ή την έξοδο της εντολής. Σφάλµα στην γραµµή 53! Μπορούσε να µην εµφανιστεί αν δεν ζητούσαµε εκτύπωση. Σφάλµα στην γραµµή 58! Προέρχεται από λάθος κλήση στην γραµµή 38. ιάλεξη 3 19

20 Αποσφαλµάτωση µε χρήση Exceptions - Πλεονεκτήµατα Η κλάση exceptions προσφέρει την δυνατότητα εκτύπωσης των κλήσεων που οδήγησαν στο συγκεκριµένο σφάλµα Μέθοδος printstacktrace(); Τυπώνονται οι διαδοχικές κλήσεις µεθόδων που οδήγησαν στο συγκεκριµένο σφάλµα. ΕΝ ΕΙΝΑΙ ΚΑΛΗ ΠΡΑΚΤΙΚΗ: Να χρησιµοποιείται η ανώτερη ιεραρχικά κλάση για την διαχείριση όλων των σφαλµάτων (δηλαδή η Exception). Να τοποθετείται throws στην µέθοδο main. Μερικά από τα προτερήµατα που µας παρέχει η χρήση exceptions: ιαχωρισµός του κώδικα που κάνει exception handling από τον κώδικα της εφαρµογής µας. ιαχείριση ενός exception υψηλότερα στο call stack, απλά µε την χρήση της δήλωσης throws. Κατηγοριοποίηση και χειρισµός των exceptions σε οµάδες λόγω της ύπαρξης ιεραρχίας κλάσεων (πχ τα exceptions FileNotFoundException και InterruptedIOException µπορούν να αντικατασταθούν από το IOException) ιάλεξη 3 20

21 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 4 21

22 Ροές - Γενικά Μια ροή είναι είτε µια πηγή είτε ένας προορισµός από bytes. Η πηγή και ο προορισµός των ροών περιλαµβάνει αρχεία στο δίσκο, συσκευές, άλλα προγράµµατα... ύο βασικές κατηγορίες Ροές εισόδου: µπορείτε µόνο να διαβάσετε Ροές εξόδου: µπορείτε µόνο να γράψετε Η Java υποστηρίζει ένα σύνολο από τύπους δεδοµένων που περνούν σαν ροές όπως bytes, primitive τύπους δεδοµένων, αντικείµενα. Μερικές ροές απλά περνούν δεδοµένα από την πηγή στον προορισµό. Άλλες τα µετασχηµατίζουν κατάλληλα και τα χρησιµοποιούν. Η βιβλιοθήκη java.io περιλαβάνει όλες οι κλάσεις για τις ροές δεδοµένων. Ροές εισόδου MyProg Ροές εξόδου ιάλεξη 4 22

23 Ροές δεδοµένων τύπου byte Είναι σηµαντικό να κλείνουµε τις ροές δεδοµένων όταν δεν τις χρειαζόµαστε άλλο. Η finally µας το εγγυάται. Εκτελούν µεταφορά δεδοµένων σε 8-bit bytes. Η Java µας παρέχει τις κλάσεις InputStream και OutputStream και τις αντίστοιχες υποκλάσεις τους για να διαχειριστούµε ροές τύπου byte. Οι ροές δεδοµένων για αρχεία ανήκουν στην κατηγορία των byte streams. Σηµείωση: ΕΝ χρησιµοποιούµε τα byte streams κατευθείαν, διότι παρέχουν Ι/Ο λειτουργικότητα πολύ χαµηλού επιπέδου. Όλες οι άλλες πιο πολύπλοκες ροές βασίζονται στα byte streams. import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; public class ExampleBytes { public static void main(string[] args) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("test.txt"); out = new FileOutputStream( output.txt"); int c; while ((c = in.read())!= -1) { out.write(c); finally { if (in!= null) { in.close(); if (out!= null) { out.close(); ιάλεξη 4 23

24 Ροές χαρακτήρων Η Java χρησιµοποιεί Unicode για την αναπαράσταση συµβολοσειρών και χαρακτήρων. Οι ρόες χαρακτήρων είναι 16-bit εκδόσεις των byte streams που επιτρέπουν την αντίστοιχη αντιµετώπιση στους χαρακτήρες. Ένα πρόγραµµα που χρησιµοποιεί ροές χαρακτήρων αντί για ροές bytes µετατρέπει αυτόµατα τα δεδοµένα εισόδου/εξόδου στην τοπική αναπαράσταση. Οι ρόες χαρακτήρων κληρονοµούν τις κλάσεις Reader και Writer. Για χειρισµό αρχείων, οι ροές χαρακτήρων που χρησιµοποιούνται είναι οι FileReader και FileWriter. import java.io.filereader; import java.io.filewriter; import java.io.ioexception; public class ExampleCharacters { public static void main(string[] args) throws IOException { FileReader inputstream = null; FileWriter outputstream = null; try { inputstream = new FileReader( test.txt"); outputstream = new FileWriter( output.txt"); int c; while ((c = inputstream.read())!= -1) { outputstream.write(c); finally { if (inputstream!= null) { inputstream.close(); if (outputstream!= null) { outputstream.close(); ιάλεξη 4 24

25 ιασύνδεση ροών τύπου byte και ροών χαρακτήρων Οι ροές χαρακτήρων µπορούν να χαρακτηριστούν και σαν wrappers για ροές τύπου byte. H FileReader χρησιµοποιεί την FileInputStream και η FileWriter την FileOutputStream αντίστοιχα. Η Java παρέχει δύο κλάσεις γενικού σκοπού για τη διασύνδεση των ροών τύπου byte και των ροών χαρακτήρων, όπου δεν υπάρχει. InputStreamReader και OutputStreamWriter χρησιµοποιούνται για να δηµιουργήσουν ροές χαρακτήρων όταν δεν υπάρχουν έτοιµες ροές τύπου byte που να σας εξυπηρετούν. Παράδειγµα χρήσης των κλάσεων αυτών είναι στη διαχείριση εισόδου/εξόδου µε τη χρήση sockets! ιάλεξη 4 25

26 Ροές δεδοµένων µε ενδιάµεση µνήµη Οι πράξεις εισόδου/εξόδου είναι πιο αποδοτικές όταν γίνονται σε µεγάλα τµήµατα δεδοµένων, µιας και η προσπέλαση στο δίσκο γίνεται για µεγαλύτερο όγκο δεδοµένων. Οι ροές δεδοµένων µε ενδιάµεση µνήµη προσφέρουν αυτή τη δυνατότητα. Οι ροές δεδοµένων µε ενδιάµεση µνήµη χρησιµοποιούν τις ροές τύπου byte ή τις ροές χαρακτήρων. Οι κλάσεις BufferedInputStream και BufferedOutputStream χειρίζονται ροές bytes µε ενδιάµεση µνήµη. Οι κλάσεις BufferedReader και BufferedWriter χειρίζονται ροές χαρακτήρων µε ενδιάµεση µνήµη. import java.io.filereader; import java.io.filewriter; import java.io.bufferedreader; import java.io.printwriter; import java.io.ioexception; public class ExampleLines { public static void main(string[] args) throws IOException { BufferedReader inputstream = null; BufferedWriter outputstream = null; try { inputstream = new BufferedReader(new FileReader( test.txt")); outputstream = new BufferedWriter(new FileWriter( output.txt")); String l; while ((l = inputstream.readline())!= null) { outputstream.write(l); finally { if (inputstream!= null) { inputstream.close(); if (outputstream!= null) { outputstream.close(); ιάλεξη 4 Τµήµα Πληροφορικής 26 wrapping

27 Είδοδος/έξοδος από/προς το χρήστη Βασική είσοδος: System.in Βασική έξοδος: System.out Βασική έξοδος λαθών: System.err Σηµείωση: Οι ροές System.out και System.err έχουν οριστεί σαν αντικείµενα τύπου PrintStream, µε αποτέλεσµα να παρέχουν τη λειτουργικότητα µιας ροής χαρακτήρων. Η ροή System.in είναι µια ροή τύπου byte και δεν παρέχει τη λειτουργικότητα µιας ροής χαρακτήρων. Για να γίνει αυτό χρησιµοποιείστε στην κλάση InputStreamReader. InputStreamReader in = new InputStreamReader(System.in); ιάλεξη 4 27

28 Ροές δεδοµένων τύπου data Χρησιµοποιούνται για είσοδο/έξοδο των βασικών τύπων δεδοµένων της Java (boolean, char, byte, short, int, long, float, double) καθώς και String. DataInputStream, DataOutputStream Data type Output method Input method Sample value double DataOutputStream.writeDouble DataOutputStream.readDouble int DataOutputStream.writeInt DataOutputStream.writeInt 11 String DataOutputStream.writeString DataOutputStream.writeString Hello Οι ρόες αυτές βασίζονται σε υπάρχουσες ροές τύπου byte/χαρακτήρων DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(aFile))); DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(aFile))); ιάλεξη 4 28

29 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 4 29

30 Serializable H Java παρέχει έναν µηχανισµό έτσι ώστε να µετατρέπει ένα αντικείµενο σε µια ακολουθία από bytes (object serialization). Από την στιγµή που ένα αντικείµενο γραφτεί σε ένα αρχείο, µπορεί να διαβαστεί και να ξαναφτιαχτεί σαν αντικείµενο στην µνήµη (deserialized). Οι κλάσεις ObjectInputStream και ObjectOutputStream παρέχουν µεθόδους κατάλληλες για το serializing and deserializing ενός αντικειµένου. ObjectOutputStream: public final void writeobject(object x) throws IOException: κάνει serialize ένα αντικείµενο και το στέλνει στο output stream. ObjectInputStream: public final Object readobject() throws IOException, ClassNotFoundException: διαβάζει το επόµενο αντικείµενο από το input stream και το µετατρέπει σε αντικείµενο. Επειδή επιστρέφει Object πρεπει να γίνει το κατάλληλο type casting Ιδιαίτερα σηµαντικό είναι το γεγονός ότι ένα αντικείµενο µπορεί να γίνει serialized σε µια πλατφόρµα και deserialized ώστε να ανακτηθεί από µια άλλη. ιάλεξη 4 30

31 Η ArrayList κάνει Implement το Serializable Κάνουµε serialize τη λίστα και τη στέλνουµε στο αρχείο person.txt Για να επιτύχουµε ένα αντικείµενο µιας κλάσης να γίνει serialized θα πρέπει: ιαβάζουµε το person.txt και τα περιεχόµενα του τα µετατρέπουµε σαν µια λίστα από αντικείµενα Η κλάση να κάνει implement το interface java.io.serializable. Όλα τα πεδία της κλάσης να είναι serializable. Εάν όχι, τότε πρέπει να γίνουν marked ως transient.

32 Comparable Τα Collections υλοποιούν την ταξινόµηση αντικειµένων µέσα από την µέθοδο Collections.sort(). Το ερώτηµα είναι πως µπορώ να συγκρίνω αντικείµενα µιας κλάσης ώστε να µπορώ να τα ταξινοµήσω? Ένα σύνολο κλάσεων όπως η String, Number (µαζί µε τις υποκλάσεις της), Date κάνουν implement το interface Comparable και υλοποιούν µε τον δικό τους τρόπο την µοναδική µέθοδο compareto() που διαθέτει. public interface Comparable<T> { public int compareto(t o); Η compareto() συγκρίνει το αντικείµενο που την καλεί µε το αντικείµενο που δεχεται σαν παράµετρο και επιστρέφει έναν αρνητικό, µηδέν ή θετικό ακέραιο ανάλογα αν η παράµετρος ήταν µικρότερη, ίση ή µεγαλύτερη από το τρέχον αντικείµενο. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 32

33 Παράδειγµα Τι τυπώνει το πρόγραµµα? Θυµάστε την χρησιµότητα των µεθόδων equals() και tostring()? Υλοποιούµε την δική µας compareto() ΑΠΑΝΤΗΣH: Karl Ng, Tom Rich, Jeff Smith, John Smith Η String διαθέτει την δικής της compareto() ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 33

34 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 4 34

35 Properties Στην Java χρησιµοποιούµε properties file για να αποθηκεύουµε configuration data. Ένα τυπικό config.properties αρχείο µπορεί να περιέχει µέσα του dbuser=root dbpassword=root database=mysql keyname=keyvalue H Java µας παρέχει την κλάση Properties για να µπορούµε να διαβάζουµε properties αρχεία µέσα από ένα ορισµένο interface Properties prop = new Properties(); try { prop.load(new FileInputStream("config.properties")); System.out.println(prop.getProperty("database")); System.out.println(prop.getProperty("dbuser")); System.out.println(prop.getProperty("dbpassword")); catch (IOException ex) { ex.printstacktrace(); ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 35

36 Network interfaces Τα network interfaces είναι οι διεπαφές του υπολογιστή µας µε το δίκτυο. Οι διεπαφές αυτές µπορεί να είναι φυσικές (κάρτα δικτύου) ή και λογισµικό που προσοµοιώνει µια διεπαφή. Χαρακτηριστικό παράδειγµα αποτελεί το loopback (lo) µε IP διεύθυνση Μια φυσική διεπαφή µπορεί να διαµορφωθεί έτσι ώστε να περιλαµβάνει µια σειρά από sub-interfaces (λογικά interfaces). Με αυτό τον τρόπο πετυχαίνω ένα φυσικό interface να ανήκει σε πολλά υποδίκτυα και να διαθέτει πολλές IP ταυτόχρονα. #add subinterface and assign ip sudo ifconfig eth0: netmask #turn up the interface sudo ifconfig eth0:0 up #check!! ifconfig Για να µείνει το configuration µόνιµα, καταχωρούµε τα στοιχεία για το subinterface στο /etc/network/interfaces auto eth0:0 iface eth0:0 inet static address netmask ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 36

37 java.net.networkinterface Η Java µας παρέχει την δυνατότητα µέσα από την κλάση NetworkInterface να µπορούµε να προσπελάσουµε τόσο ένα φυσικό network interface (µαζί µε τα sub-interfaces του) όσο και το loopback. Ακόµη, µπορούµε να ορίσουµε εµείς ρητά ποιό interface θα χρησιµοποιηθεί για την αποστολή/λήψη δεδοµένων µέσω socket σε µια client-server επικοινωνία. εν περιέχει public constructors αλλά µέσα από ένα σύνολο static µεθόδων µπορώ να λάβω τα διαθέσιµα interfaces της συσκευής και να τα χειριστώ ανάλογα Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); for (NetworkInterface netif : Collections.list(nets)) { out.printf("display name: %s\n", netif.getdisplayname()); out.printf("name: %s\n", netif.getname()); Enumeration<NetworkInterface> subifs = netif.getsubinterfaces(); for (NetworkInterface subif : Collections.list(subIfs)) { out.printf("\tsub Interface Display name: %s\n", subif.getdisplayname()); οut.printf("\tsub Interface Name: %s\n", subif.getname()); ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 37

38 Άλλες χρήσιµες µέθοδοι... getinetaddresses(): επιστρέφει όλες τις IP διευθύνσεις που διαθέτει το interface. getinterfaceaddresses(): µια λίστα από IP address, subnet mask και broadcast address για το συγκεκριµένο interface. isup(): ελέγχει άν ένα interface είναι up. isloopback(): ελέγχει αν το δεδοµένο interface είναι loopback interface. ispointtopoint(): ελέγχει αν το δεδοµένο interface είναι point-to-point interface. isvirtual(): ελέγχει αν το δεδοµένο interface είναι virtual interface (sub-interface). ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 38

39 Εξωτερικές διεργασίες Collections & Generics ιαχείριση σφαλµάτων στην Java Ροές εδοµένων Χρήσιµα interfaces Serializable, Comparable Properties & Network Interface Regular Expressions ιάλεξη 4 39

40 Regular Expressions Είναι ένας τρόπος για να ορίσω και να αναζητήσω patterns µέσα σε κείµενο (ή String). Παραδείγµατα χρήσης regular expressions που έχουµε συναντήσει: grep, sed, awk... Στην Java η βιβλιοθήκη java.util.regex µας παρέχει 3 κλάσεις για να ορίσουµε και να χειριστούµε regular expressions: Pattern, Matcher και PatternSyntaxException. Η κλάση Pattern µας βοηθά να δηµιουργήσουµε αντικείµενα που περιέχουν µέσα τους ένα pattern ορισµένο από τον χρήστη. Μέσα από τις static µεθόδους που έχουν οριστεί, δίνουµε σαν όρισµα ένα pattern και µας επιστρέφει ένα αντικείµενο τύπου Pattern. Η κλάση Matcher µας βοηθά στο να δηµιουργήσουµε αντικείµενα που µεταφράζουν τα patterns και να τα αναζητήσουν µέσα σε ένα κείµενο (ή και string). Η κλάση PatternSyntaxException ορίζει το exception που µπορεί να υπάρξει από την χρήση regular expressions. Ανήκει στην κατηγορία των unchecked exceptions και υποδηλώνει πως κάποιο σφάλαµα υπήρξε στην σύνταξη ενός regular expression pattern. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 40

41 ιαβάζουµε από το πληκτρολόγιο το Pattern που θα ορίσει ο χρήστης και δηµιουργούµε αντικείµενο τύπου Pattern ιαβάζουµε από το πληκτρολόγιο το κείµενο όπου θα κάνουµε match το pattern Όσο το αντικείµενο matcher βρίσκει patterns µέσα στο κείµενο µας Τυπώνει το string του κειµένου που ταυτίζεται µε το pattern Τυπώνει τα σηµεία που ξεκινά και τελειώνει το pattern στην συγκεκριµένη επανάληψη Enter your regex: foo Enter input string to search: foofoofoo I found the text foo starting at index 0 and ending at index 3. I found the text foo starting at index 3 and ending at index 6. I found the text foo starting at index 6 and ending at index 9.

42 Regular Expression Constructs (1/5) Character Classes: δεν είναι κλάση!! Αποτελεί ένα τρόπο να δηµιουργήσουµε patterns από χαρακτήρες µέσα σε []. Enter your regex: [bcr]at Enter input string to search: bat I found the text "bat" starting at index 0 and ending at index 3. Enter your regex: [bcr]at Enter input string to search: hat No match found. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 42

43 Regular Expression Constructs (2/5) Predefined Character Classes: µας παρέχει την δυνατότητα εισαγωγής συντοµεύσεων στα patterns. Enter your regex: \d Enter input string to search: 1 I found the text "1" starting at index 0 and ending at index 1. Enter your regex: [bcr]at Enter your regex: \D Enter input string to search: 1 No match found. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 43

44 Regular Expression Constructs (3/5) Quantifiers: µας δίνει την δυνατότητα να εισάγουµε πληθικότητα στις εµφανίσεις των συµβόλων. Enter your regex: a? Enter input string to search: aaaaa I found the text "a" starting at index 0 and ending at index 1. I found the text "a" starting at index 1 and ending at index 2. I found the text "a" starting at index 2 and ending at index 3. I found the text "a" starting at index 3 and ending at index 4. I found the text "a" starting at index 4 and ending at index 5. I found the text "" starting at index 5 and ending at index 5. Enter your regex: a* Enter input string to search: aaaaa I found the text "aaaaa" starting at index 0 and ending at index 5. I found the text "" starting at index 5 and ending at index 5. Enter your regex: a+ Enter input string to search: aaaaa I found the text "aaaaa" starting at index 0 and ending at index 5. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 44

45 Regular Expression Constructs (4/5) Capturing Groups: ορίζει ένα σύνολο χαρακτήρων σαν αδιαίρετο group µέσα σε (). Εφαρµόζεται σε συνδιασµό µε τα προηγούµενα constructs που έχουµε συναντήσει. Enter your regex: (dog){3 Enter input string to search: dogdogdogdogdogdog I found the text "dogdogdog" starting at index 0 and ending at index 9. I found the text "dogdogdog" starting at index 9 and ending at index 18. Enter your regex: dog{3 Enter input string to search: dogdogdogdogdogdog No match found. Enter your regex: [abc]{3 Enter input string to search: abccabaaaccbbbc I found the text "abc" starting at index 0 and ending at index 3. I found the text "cab" starting at index 3 and ending at index 6. I found the text "aaa" starting at index 6 and ending at index 9. I found the text "ccb" starting at index 9 and ending at index 12. I found the text "bbc" starting at index 12 and ending at index 15. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 45

46 Regular Expression Constructs (5/5) Boundary matchers: θέτουν χαρακτηριστικά θέσης που θα βρίσκεται το pattern µέσα στο κείµενο. Enter your regex: ^dog$ Enter input string to search: dog I found the text "dog" starting at index 0 and ending at index 3. Enter your regex: ^dog$ Enter input string to search: dog No match found. Enter your regex: \s*dog$ Enter input string to search: dog I found the text dog" starting at index 0 and ending at index 15. Enter your regex: ^dog\w* Enter input string to search: dogblahblah I found the text "dogblahblah" starting at index 0 and ending at index 11. ιάλεξη 4 Τµήµα Πληροφορικής και Τηλεπικοινωνίων 46

Διάλεξη Εισαγωγή στη Java, Μέρος B

Διάλεξη Εισαγωγή στη Java, Μέρος B Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος B Collections & Generics Διαχείριση σφαλμάτων στην

Διαβάστε περισσότερα

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Διαχείριση Δικτύων. Nikolas Bompetsis

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Διαχείριση Δικτύων. Nikolas Bompetsis Διαχείριση Δικτύων Nikolas Bompetsis nbompetsis@di.uoa.gr Εισαγωγική Διάλεξη Java Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Τεχνολογία Java Collections & Generics Διαχείριση σφαλμάτων Ροές Δεδομένων

Διαβάστε περισσότερα

Διάλεξη 4. Νήματα (Threads) στην Java Συγχρονισμός Εξωτερικές διεργασίες Collections & Generics Διαχείριση σφαλμάτων στην Java

Διάλεξη 4. Νήματα (Threads) στην Java Συγχρονισμός Εξωτερικές διεργασίες Collections & Generics Διαχείριση σφαλμάτων στην Java Διάλεξη 4 Νήματα (Threads) στην Java Συγχρονισμός Εξωτερικές διεργασίες Collections & Generics Διαχείριση σφαλμάτων στην Java Διάλεξη 4 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό

Διαβάστε περισσότερα

Αρχεία και Ρεύματα. Αρχεία

Αρχεία και Ρεύματα. Αρχεία Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα

Διαβάστε περισσότερα

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

Διαβάστε περισσότερα

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

Διαβάστε περισσότερα

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 12: Είσοδος από & Έξοδος σε Ρεύματα & Αρχεία Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

Διαβάστε περισσότερα

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)

Διαβάστε περισσότερα

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

Διαβάστε περισσότερα

Week. 6: Java Collections

Week. 6: Java Collections Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται

Διαβάστε περισσότερα

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #7 η : Εξαιρέσεις (λάθη εκτέλεσης, χειρισμός εξαιρέσεων λαθών,) Είσοδος / Έξοδος (ρεύματα, κλάσεις εισόδου και εξόδου, διαχείριση αρχείων) Γαβαλάς

Διαβάστε περισσότερα

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

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

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

6. Εξαιρέσεις στη γλώσσα Java

6. Εξαιρέσεις στη γλώσσα Java 6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

Διαβάστε περισσότερα

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται

Διαβάστε περισσότερα

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

Το πρόγραμμα 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 υποστηρίζει

Διαβάστε περισσότερα

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

Διαβάστε περισσότερα

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη προς το πρόγραμμα (μια πηγή δεδομένων)

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Κατηγορίες Διαχείριση αρχείων Η κλάση File για τη διαχείριση αρχείων Δυαδικά ρεύματα Εγγραφή και ανάγνωση δυαδικών αρχείων

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Είσοδος & Έξοδος. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Είσοδος & Έξοδος. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Είσοδος & Έξοδος Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.09 Ρεύµατα (Streams) 2 Ένας ορισµός του ρεύµατος Αφαιρετική έννοια για κάτι το οποίο παράγει

Διαβάστε περισσότερα

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

Διαβάστε περισσότερα

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

Διαβάστε περισσότερα

10.1 Γενικά για τα streams

10.1 Γενικά για τα streams 10.1 Γενικά για τα streams Για την αλληλεπίδραση ενός προγράµµατος µε ένα αρχείο, δηλαδή για την αποθήκευση ή την ανάγνωση δεδοµένων από αυτό χρησιµοποιείται ένα σύστηµα επικοινωνίας που καλείται streams.

Διαβάστε περισσότερα

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #16

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #16 Week 9: Input / Output Μηχανισμοί εισόδου/εξόδου [I/O mechanisms] Όλα τα προγράμματα χρειάζονται είσοδο/έξοδο για να επικοινωνούν με το περιβάλλον τους. Διάλεξη #16: Είσοδος / Έξοδος [Input / Output] Η

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions) ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions) Οι εφαρμογές της Java είναι

Διαβάστε περισσότερα

Week 9: Input / Output

Week 9: Input / Output Week 9: Input / Output Μηχανισµοί εισόδου/εξόδου [I/O mechanisms] Όλα τα προγράµµατα χρειάζονται είσοδο/έξοδο για να επικοινωνούν µε το περιβάλλον τους. Εβδοµάδα 8: Είσοδος / Έξοδος [Input / Output] Η

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 Προχωρηµένα Θέµατα Πακέτα Τις κλάσεις που κατασκευάζουµε µπορούµε να τις οργανώνουµε σε πακέτα εν «κουβαλάµε» µια-µια τις κλάσεις που επιθυµούµε αλλά ένα συµπαγές αρχείο, το πακέτο

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

Διαβάστε περισσότερα

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

ΗΥ-252 Οντοκεντρικός Προγραµµατισµός Βασίλης Χριστοφίδης. Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 12 Σεπτεµβρίου 2002

ΗΥ-252 Οντοκεντρικός Προγραµµατισµός Βασίλης Χριστοφίδης. Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 12 Σεπτεµβρίου 2002 Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-252 Οντοκεντρικός Προγραµµατισµός Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 12 Σεπτεµβρίου 2002 Άσκηση

Διαβάστε περισσότερα

Generics και ArrayLists

Generics και ArrayLists ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Generics και ArrayLists Προσοχή!!! Να εκτελεστούν πρώτα όλες οι ασκήσεις τις Θεωρίας

Διαβάστε περισσότερα

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

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: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Εξαιρέσεις ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΕΞΑΙΡΕΣΕΙΣ

Διαβάστε περισσότερα

Εξαιρέσεις. try, catch, finally, throw, throws

Εξαιρέσεις. try, catch, finally, throw, throws Εξαιρέσεις try, catch, finally, throw, throws Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη

Διαβάστε περισσότερα

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java JAVA, NETBEANS ΑΝΑΚΕΦΑΛΑΙΩΣΗ Τα βασικά για την γλώσσα Java Java portability Το μεγαλύτερο πλεονέκτημα της Java είναι η μεταφερσιμότητα: ο κώδικας μπορεί να τρέξει πάνω σε οποιαδήποτε πλατφόρμα. Write-Once-Run-Anywhere

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος H κλάση ArrayList Γιώργος Θάνος Γραφείο Γ ος όροφος Γκλαβάνη 37 Εισαγωγικά Η κλάση ArrayList δίνει την δυνατότητα να αποθηκεύσουμε δεδομένα οποιουδήποτε τύπου σε μία δομή δεδομένων η οποία επιτρέπει τα

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Είσοδος - Έξοδος ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής

Διαβάστε περισσότερα

Εξαιρέσεις στην Java EXCEPTIONS IN JAVA

Εξαιρέσεις στην Java EXCEPTIONS IN JAVA Εξαιρέσεις στην Java EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει

Διαβάστε περισσότερα

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος

Διαβάστε περισσότερα

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Δοµικά στοιχεία Πίνακες Το κόσκινο του Ερατοσθένη Αντιγραφή πινάκων

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε

Διαβάστε περισσότερα

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Linear Data Structures) Ας θεωρήσουµε µία δοµή δεδοµένων το σύνολο των στοιχείων της οποίας είναι διατεταγµένο µε τέτοιο τρόπο ώστε να ισχύουν τα εξής: (α) υπάρχει ένα µόνο

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων) ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 10 Exceptions handling (Χειρισμός εξαιρέσεων)

Διαβάστε περισσότερα

Βασικά της γλώσσας JAVA

Βασικά της γλώσσας JAVA 17 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

Διαβάστε περισσότερα

Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions

Εξαιρέσεις (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η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

Διαβάστε περισσότερα

ΣΕΜΙΝΑΡΙΟ JAVA. 5 η ιάλεξη

ΣΕΜΙΝΑΡΙΟ JAVA. 5 η ιάλεξη ΣΕΜΙΝΑΡΙΟ JAVA 5 η ιάλεξη ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓ/ΣΜΟΣ & ΣΦΑΛΜΑΤΑ Εnumerators Κληρονοµικότητα Exceptions try / catch / finally Interfaces ENUMERATORS ( ENUM ) Τα enum είναι ένα εργαλείο για να οριστεί

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

Διαβάστε περισσότερα

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1 Αντικείμενα στη Java Παύλος Εφραιμίδης Java Αντικείμενα στη Java 1 Αντικείμενα (Objects) στην Java Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις Στατικές μέθοδοι Τι σημαίνει το keyword static στον ορισμό της main μεθόδου? Τι είναι μια στατική μέθοδος?

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

Διαβάστε περισσότερα

Χωρική Βάση δεδοµένων Autocad

Χωρική Βάση δεδοµένων Autocad Χωρική Βάση δεδοµένων Autocad Όλοι η πληροφορία σας βρίσκεται σε ένα αρχείο µε κατάληξη.dwg το οποίο αντιπροσωπεύει τη βάση δεδοµένων σας. Αυτό το αρχείο µπορούµε να το επεξεργαστούµε µε διάφορους τρόπους

Διαβάστε περισσότερα

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Φθινοπωρινό Εξάμηνο Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Σκοπός αυτής της

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

Διαβάστε περισσότερα

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης Αντικειµενοστραφής Σχεδίαση Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Αρχεία String processing ΕΞΑΙΡΕΣΕΙΣ Εξαιρέσεις οι Εξαιρέσεις (Exceptions) είναι ένας μηχανισμός που έχει η Java για να αντιμετωπίζει περιπτώσεις

Διαβάστε περισσότερα