Περιεχόμενα. Πρόλογος... 17

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

Download "Περιεχόμενα. Πρόλογος... 17"

Transcript

1

2

3 Περιεχόμενα Πρόλογος Κεφάλαιο 1 Εισαγωγή Τι είναι η Java Η ιστορία της Java Εκδόσεις της Java Ξεκίνημα με την Java Το περιβάλλον της γλώσσας Δημιουργία μιας εφαρμογής Java Δημιουργία ενός Java applet Ερωτήσεις και Ασκήσεις Κεφάλαιο 2 Δεδομένα, μεταβλητές, υπολογισμοί Μεταβλητές και δεδομένα Ακέραιοι τύποι δεδομένων Αριθμοί κινητής υποδιαστολής Οι μοναδιαίοι τελεστές αύξησης και μείωσης Οι τελεστές των αριθμητικών πράξεων Περισσότερα για τις εκχωρήσεις Λογικές τιμές Τελεστές σύγκρισης Λογικοί τελεστές Τελεστές δυαδικών ψηφίων Χαρακτήρες

4 8 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Αλφαριθμητικά Αρχικές τιμές για τις μεταβλητές-μέλη Μετατροπή τύπου δεδομένων Μαθηματικές συναρτήσεις Συμπληρωματικές ασκήσεις Μετατροπή αλφαριθμητικών σε αριθμούς Εισαγωγή δεδομένων από το πληκτρολόγιο Εισαγωγή δεδομένων από το πληκτρολόγιο με τη χρήση της κλάσης Scanner Ερωτήσεις και Ασκήσεις Κεφάλαιο 3 Δομές διακλάδωσης επαναλήψεις μέθοδοι Αποφάσεις Η δομή if Ο όρος else Ένθετα if Οι τελεστές & και Ο τριαδικός τελεστής?: Η δομή πολλαπλής διακλάδωσης switch Εντολές επανάληψης βρόχοι Ο βρόχος for O βρόχος while O βρόχος do - while Ένθετοι βρόχοι Η εντολή continue Η χρήση του break σε ένα βρόχο Μέθοδοι Ερωτήσεις και Ασκήσεις Κεφάλαιο 4 Πίνακες και αλφαριθμητικά Πίνακες με μία διάσταση Η δήλωση ενός πίνακα Η καταχώριση του πίνακα Απόδοση αρχικών τιμών στον πίνακα Πίνακες πολλών διαστάσεων Ταξινόμηση...127

5 Περιεχόμενα 9 Αλφαριθμητικά Πράξεις με αλφαριθμητικά Υποαλφαριθμητικά Προσπέλαση μεμονωμένων χαρακτήρων ενός αλφαριθμητικού και εύρεση του μήκους του Αντικατάσταση χαρακτήρων σε ένα αλφαριθμητικό Εντοπισμός χαρακτήρων μέσα σε ένα αλφαριθμητικό Μετατροπή άλλων τύπων δεδομένων σε αλφαριθμητικά η μέθοδος valueof Μετατροπή αλφαριθμητικών σε άλλους τύπους δεδομένων Η κλάση StringBuffer Αντικατάσταση χαρακτήρων σε αντικείμενο της κλάσης StringBuffer Μετατροπή αντικειμένου StringBuffer σε αλφαριθμητικό Αντιστροφή αλφαριθμητικού η μέθοδος reverse() Ερωτήσεις και Ασκήσεις Κεφάλαιο 5 Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Πώς ορίζουμε μια κλάση Η μεταβλητή this Οι κατασκευαστές Πώς θα χρησιμοποιήσουμε μια κλάση που δημιουργήσαμε Πολλαπλοί κατασκευαστές Η αναφορά στα αντικείμενα Τι είναι τα πακέτα Τα τυπικά πακέτα της Java Πώς μπορούμε να "πακετάρουμε" τις δικές μας κλάσεις Αντικειμενοστρεφής προγραμματισμός Ενθυλάκωση οι προσδιοριστές public, private και protected Πολυμορφισμός Η κληρονομικότητα των κλάσεων Τελικές κλάσεις και μέθοδοι Μέθοδοι και κλάσεις αφηρημένου τύπου Οι διασυνδέσεις Ερωτήσεις και Ασκήσεις...184

6 10 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Κεφάλαιο 6 Δημιουργία του πρώτου applet Εισαγωγή Κατασκευή του πρώτου μας applet Πώς δουλεύει το applet HelloWorld.java και το αρχείο HelloWorld.html Μεταβίβαση παραμέτρων στο applet Περισσότερα για τα applet Οι μέθοδοι που χρησιμοποιούνται σε ένα applet Το πρόσθετο Java (Java plug in) και η ετικέτα <OBJECT> Ερωτήσεις και Ασκήσεις Κεφάλαιο 7 Γραφικά Εισαγωγή η βιβλιοθήκη AWT (Abstract Window Toolkit) Το σύστημα συντεταγμένων της Java Οι γραμματοσειρές Εμφάνιση κειμένου με διάφορες γραμματοσειρές Πληροφορίες για τις γραμματοσειρές Η ρύθμιση του χρώματος Αλλαγή του σχήματος του δρομέα Γραμμές Ορθογώνια Ελλείψεις, κύκλοι, και τόξα Πολύγωνα Αντιγραφή τμήματος της οθόνης Εφαρμογές Ερωτήσεις και Ασκήσεις Κεφάλαιο 8 Γραφικό περιβάλλον διασύνδεσης Μέρος Ι: Τα βασικά συστατικά Γραφικό περιβάλλον διασύνδεσης GUI Συστατικά και υποδοχείς στην Java Κουμπί διαταγής Ετικέτα Λίστες Πλαίσια ελέγχου και κουμπιά επιλογής Μενού επιλογής Πεδίο κειμένου και περιοχή κειμένου Ερωτήσεις και Ασκήσεις...259

7 Περιεχόμενα 11 Κεφάλαιο 9 Γεγονότα Γεγονότα το μοντέλο αποστολής γεγονότος Η κλάση ActionEvent Γεγονότα ρύθμισης οι ράβδοι κύλισης Η κλάση ItemEvent Διασυνδέσεις ακροατών για συμβάντα χαμηλού επιπέδου Γεγονότα του ποντικιού Γεγονότα του πληκτρολογίου Προσαρμοστές Ερωτήσεις και Ασκήσεις Κεφάλαιο 10 Διαχειριστές διάταξης Εισαγωγή Ο διαχειριστής FlowLayout Ο διαχειριστής BorderLayout Ο διαχειριστής GridLayout Ο διαχειριστής GridBagLayout Πάνελ Ο διαχειριστής CardLayout Ερωτήσεις και Ασκήσεις Κεφάλαιο 11 Γραφικό περιβάλλον διασύνδεσης Κεφάλαιο 11 Μέρος ΙI: Περισσότερα συστατικά του AWT Το συστατικό καμβάς Πλαίσια Μενού Πλαίσια διαλόγου Αναδυόμενα μενού Ερωτήσεις και Ασκήσεις Κεφάλαιο 12 Swing και Java2D Τι είναι το Swing Το μοντέλο του υποδοχέα ριζικού πλαισίου Πλαίσια το συστατικό JFrame Η κλάση JComponent Ετικέτες και κουμπιά διαταγών...351

8 12 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Ετικέτες η κλάση JLabel Κουμπιά η κλάση JButton Συστατικά κειμένου Πεδίο και περιοχή κειμένου οι κλάσεις JTextField και JTextArea Ο χειρισμός των γεγονότων στο Swing Επικοινωνία με το χρήστη η κλάση JOptionPane Ο επιλογέας χρωμάτων το συστατικό JColorChooser Πλαίσια η κλάση JPanel Πλαίσια ελέγχου και ραδιοπλήκτρα οι κλάσεις JCheckBox και JRadioButton Πτυσσόμενα πλαίσια και λίστες οι κλάσεις JComboBox και JList Επιλογή αρχείων η κλάση JFileChooser Ράβδος ολίσθησης με λαβή η κλάση JSlider Η χρήση μενού στα πλαίσια οι κλάσεις JMenu, JMenuBar και JMenuItem Δημιουργία περιγραμμάτων στα πλαίσια Τα applet του Swing η κλάση JApplet Ο διαχειριστής διάταξης BoxLayout Εμφάνιση και αίσθηση Γραφικά με το πακέτο Java 2D Εκτυπώσεις στην Java Ερωτήσεις και Ασκήσεις Κεφάλαιο 13 Εξαιρέσεις και ισχυρισμοί Τι είναι οι εξαιρέσεις Τύποι εξαιρέσεων Χειρισμός εξαιρέσεων Δημιουργία των δικών μας εξαιρέσεων Το τμήμα finally Ισχυρισμοί (assertions) Ερωτήσεις και Ασκήσεις Κεφάλαιο 14 Νήματα Τι είναι τα νήματα Το νήμα "δαίμων" Δημιουργία νήματος με την κλάση Thread Δημιουργία νήματος με την εφαρμογή της διασύνδεσης Runnable...458

9 Περιεχόμενα 13 Συγχρονισμός Προτεραιότητες Νήματα και κινούμενες εικόνες Ερωτήσεις και Ασκήσεις Κεφάλαιο 15 Εικόνες, ήχος, κίνηση Οι τύποι των εικόνων Η θέση της εικόνας οι μέθοδοι getdocumentbase(), getcodebase() Η φόρτωση της εικόνας Η εμφάνιση της εικόνας Το μέγεθος της εικόνας Χάρτες γραφικών Ήχοι Το Java Media Player Δημιουργία κίνησης με τη χρήση εικόνων Γραφικά με την τεχνική της διπλής προσωρινής αποθήκευσης και τη χρήση της κλάσης MediaTracker Ερωτήσεις και Ασκήσεις Κεφάλαιο 16 Τεχνικές εισόδου/εξόδου Το ρεύμα δεδομένων Τα αντικείμενα αρχείων Ρεύματα εξόδου Η κλάση FileOutputStream Η κλάση FilterOutputStream Τα ρεύματα εισόδου Οι υποκλάσεις της InputStream Η υποκλάση FilterInputStream Ρεύματα με αποθήκευση Πλαίσια διαλόγου αρχείων Το νέο I/O API η κλάση FileChannel Ερωτήσεις και Ασκήσεις Κεφάλαιο 17 Επικοινωνίες και δίκτυα Δίκτυα Το πρωτόκολλο TCP/IP Οι διευθύνσεις στο δίκτυο...536

10 14 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Η κλάση InetAddress Προσδιορισμός των αρχείων στο δίκτυο η κλάση URL Υποδοχές Υποδοχές αυτοδύναμων πακέτων Ερωτήσεις και ασκήσεις Κεφάλαιο 18 Δομές δεδομένων το πακέτο java.util.* Οι κλάσεις-περιτυλίγματα Οι συλλογές (Collection) Γενικοί τύποι (Generics) Επαναλήπτες (Iterator) Η κλάση ArrayList Η κλάση Vector και η διασύνδεση Iterator Λίστες Η δομή στοίβας η κλάση Stack Η δομή ουράς Απεικόνιση (Map) Δένδρα Κανονικές εκφράσεις Ερωτήσεις και Ασκήσεις Κεφάλαιο 19 Το εργαλείο Javadoc διεθνοποίηση Εισαγωγή Σχόλια doc Ετικέτες javadoc Η διεθνοποίηση της Java Τοποθεσία Δέσμες πόρων Ερωτήσεις και Ασκήσεις Κεφάλαιο 20 Η Java και οι βάσεις δεδομένων Εισαγωγή Βάσεις δεδομένων σχεσιακές βάσεις δεδομένων Η γλώσσα SQL (Structured Query Language) Το JDBC API Οι κυριότερες κλάσεις και διασυνδέσεις του JDBC...622

11 Περιεχόμενα 15 Οι διασυνδέσεις ResultSet και ResultSetMetaData Η διασύνδεση Statement και η εκτέλεση εντολών SQL Εργασία με το ΣΔΒΔ Derby Ερωτήσεις και Ασκήσεις Κεφάλαιο 21 Επίκληση απομακρυσμένων μεθόδων servlets Τι είναι η Επίκληση Απομακρυσμένων Μεθόδων (RMI) Η αρχιτεκτονική του RMI Εισαγωγή στα servlet Ερωτήσεις και Ασκήσεις Κεφάλαιο 22 JavaΒeans Επισκόπηση της τεχνολογίας JavaBeans Ο κόκκος Το BDK (Beans Development Kit) Η δημιουργία ενός κόκκου Περισσότερα για τα αρχεία JAR και για το βοηθητικό πρόγραμμα jar Γεγονότα και ακροατές Απλές ιδιότητες ενός κόκκου Συνδεδεμένες ιδιότητες Περιοριστικές ιδιότητες Η σειριοποίηση των αντικειμένων Ρεύματα σειριοποίησης Προσαρμοσμένη σειριοποίηση Αντανάκλαση Ενδοσκόπηση Ερωτήσεις και Ασκήσεις Κεφάλαιο 23 Ολοκληρωμένα περιβάλλοντα ανάπτυξης εφαρμογών Το περιβάλλον NetBeans Εργασία με την Β.Δ. Derby μέσα από το NetBeans Το πρόγραμμα JCreator Το περιβάλλον Eclipse Ο JBuilder BlueJ Microsoft Visual J++, J#, C#...745

12 16 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Κεφάλαιο 24 Java και XML Εισαγωγή στην XML Τα τρία XML API Εργασία με το StAX Ερωτήσεις και Ασκήσεις Παράρτημα Ευρετήριο

13 Κεφάλαιο 5: Κλάσεις και αντικείμενα 169 // εκτύπωση του εμβαδού κάθε κύκλου System.out.println (" Area of troxos="+troxos.area()); System.out.println (" Area of roda="+roda.area()); Μετά την εκτέλεση του προγράμματος εμφανίζονται τα ακόλουθα αποτελέσματα: Αντικειμενοστρεφής προγραμματισμός Η Java είναι μια αντικειμενοστρεφής γλώσσα προγραμματισμού. Σε αυτό το είδος προγραμματισμού (Object Oriented Programming, OOP) μπορούμε να θεωρήσουμε τα στοιχεία του προγράμματος ως αντικείμενα. Σύμφωνα με αυτή τη θεώρηση μια κλάση παρουσιάζει μια συγκεκριμένη εικόνα της "προς τα έξω". Αυτή η εικόνα εμφανίζει τις λειτουργίες (μεθόδους) που επιτελεί η κλάση, καθώς και τα δεδομένα που χρησιμοποιεί. Οτιδήποτε άλλο συμβαίνει μέσα στην κλάση, όπως π.χ. οι λεπτομερείς ενέργειες που γίνονται μέσα στις μεθόδους, παραμένει κρυφό. Η όλη ιδέα μοιάζει με την ιδέα του αυτοκινήτου: Για να οδηγήσει κάποιος ένα αυτοκίνητο, δεν χρειάζεται να ξέρει τη δομή και τη λειτουργία του κινητήρα ή το τι συμβαίνει μέσα στο κιβώτιο ταχυτήτων. Κάνει μερικές λειτουργικές ενέργειες, τις οποίες του παρέχουν τα εξαρτήματα του αυτοκινήτου (τιμόνι, γκάζι, φρένο, ταχύτητες κ.λπ.) και δεν χρειάζεται να ξέρει πώς λειτουργούν τα εξαρτήματα αυτά. Τη βασική ιδέα του αντικειμενοστρεφούς προγραμματισμού υλοποιούν τρεις αρχές: Η ενθυλάκωση (encapsulation), η κληρονομικότητα (inheritance) και ο πολυμορφισμός (polymorphism).

14 170 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Ενθυλάκωση οι προσδιοριστές public, private και protected Η ενθυλάκωση παρουσιάζει την εξωτερική όψη ενός αντικειμένου και αποκρύπτει την πολύπλοκη λογική που υπάρχει μέσα του. Αυτό επιτρέπει στον προγραμματιστή να τροποποιεί ή να βελτιώνει τους αλγόριθμους οι οποίοι υπάρχουν σε μία κλάση, χωρίς να ανησυχεί μήπως προκαλέσει απρόβλεπτα αποτελέσματα. Με άλλα λόγια, τη στιγμή που σε μια κλάση τα δεδομένα και οι χρησιμοποιούμενες μέθοδοι δεν αλλάζουν, κάθε αλλαγή στον τρόπο υλοποίησής τους παραμένει διαφανής για το χρήστη. Τα δεδομένα και οι μέθοδοι μιας κλάσης μπορεί να δηλωθούν ως public, ως private, ως protected, ή χωρίς κανέναν από τους προηγούμενους τρεις προσδιοριστές προσπέλασης (access modifiers). Οι μεταβλητές, οι μέθοδοι, και οι κλάσεις που δηλώνονται ως public, μπορούν να προσπελαστούν από οποιαδήποτε άλλη κλάση, όπου κι αν βρίσκεται αυτή. Όσες μεταβλητές και μέθοδοι χαρακτηρίζονται ως private, μπορούν να προσπελαστούν και να χρησιμοποιηθούν μόνο από το ίδιο το αντικείμενο. Δεν μπορούν να προσπελαστούν από πουθενά έξω από αυτό. Τέλος, οι μεταβλητές και οι μέθοδοι που έχουν δηλωθεί ως protected σε μια κλάση μπορούν να προσπελαστούν από όλες τις κλάσεις που βρίσκονται στο ίδιο πακέτο ή από τις υποκλάσεις (subclasses) αυτής της κλάσης για τις οποίες θα μιλήσουμε στη συνέχεια. Εάν δεν χρησιμοποιηθεί κανένας από τους παραπάνω προσδιοριστές για μια μεταβλητή, μέθοδο, ή κλάση, τότε αυτή μπορεί να χρησιμοποιηθεί μόνο από τις κλάσεις που βρίσκονται στο ίδιο πακέτο. Παράδειγμα Στο παρακάτω σχήμα δηλώνονται οι ακέραιοι x, y, z, n ως public, private, protected, και χωρίς προσδιοριστή αντίστοιχα, και φαίνεται η δυνατότητα προσπέλασής τους από αλλού. Στο επάνω μέρος του σχήματος οι κλάσεις βρίσκονται στο ίδιο πακέτο, ενώ στο κάτω σε διαφορετικά πακέτα.

15 Κεφάλαιο 5: Κλάσεις και αντικείμενα 171 Στον πίνακα που ακολουθεί φαίνεται η δυνατότητα προσπέλασης για τους τύπους των προσδιοριστών: Δυνατότητα προσπέλασης public protected Χωρίς προσδιοριστή private Από την ίδια κλάση Ναι Ναι Ναι Ναι Από τις κλάσεις του ίδιου πακέτου Ναι Ναι Ναι Όχι Από οποιαδήποτε κλάση εκτός του πακέτου στο οποίο ανήκει η κλάση Από μια υποκλάση του ίδιου πακέτου Από μια υποκλάση έξω από το πακέτο στο οποίο ανήκει η κλάση Ναι Όχι Όχι Όχι Ναι Ναι Ναι Όχι Ναι Ναι Όχι Όχι Πολυμορφισμός Ένα άλλο χαρακτηριστικό του αντικειμενοστρεφούς προγραμματισμού είναι ο πολυμορφισμός. Πολυμορφισμό έχουμε στην περίπτωση που η ίδια μέθοδος ή ο ίδιος τελεστής χρησιμοποιείται με διαφορετικούς τύπους δεδομένων. Για να πάρουμε μια ιδέα για την έννοια του πολυμορφισμού, ας εξετάσουμε ένα ανάλογο παράδειγμα από την καθημερινή ζωή. Έστω ότι βρισκόμαστε σε ένα σχολείο.

16 172 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Κάθε μαθητής γνωρίζει τη σημασία που έχει το κουδούνι. Όταν αυτό κτυπά, κάποιοι μαθητές φεύγουν από το σχολείο γιατί σχόλασαν, άλλοι πηγαίνουν στην αίθουσά τους για το επόμενο μάθημα, και άλλοι αφήνουν την αίθουσα των μαθημάτων και πηγαίνουν στο σχολικό εργαστήριο γιατί πρόκειται να παρακολουθήσουν ένα πείραμα. Συμπέρασμα: στο χτύπημα του κουδουνιού ανταποκρίνονται όλοι οι μαθητές, αλλά ο τρόπος με τον οποίον ανταποκρίνεται ο καθένας είναι διαφορετικός. Ένα άλλο παράδειγμα πολυμορφισμού είναι ο τελεστής της πρόσθεσης (+). Μπορεί να χρησιμοποιηθεί τόσο για την πρόσθεση δύο αριθμών όσο και για τη συνένωση δύο αλφαριθμητικών. Ο πολυμορφισμός μπορεί να χρησιμοποιηθεί και στις κλάσεις που δημιουργεί ο χρήστης. Ήδη στο κεφάλαιο αυτό, χρησιμοποιήθηκαν δύο τύποι κατασκευαστών της κλάσης Circle, εκ των οποίων ο ένας είχε τρία ορίσματα και ο άλλος ένα. class Circle static double Pi=3.14; static int count=0; double radius; double x; double y; Circle (double r1, double x1, double y1) radius=r1; x = x1; y = y1; ++count; Circle (double r2) x=0.0; y=0.0; radius=r2; ++count; Η κατάσταση στην οποία μπορούμε να έχουμε περισσότερους από έναν κατασκευαστές με το ίδιο όνομα, αλλά τον καθένα με τα δικά του ιδιαίτερα ορίσματα, ονομάζεται υπερφόρτωση κατασκευαστή (constructor overloading). Το όνομα του κάθε κατασκευαστή σε συνδυασμό με τον αριθμό, τον τύπο, και τη σειρά των ορισμάτων του αποτελούν την υπογραφή του (signature).

17 Κεφάλαιο 5: Κλάσεις και αντικείμενα 173 Το φαινόμενο της υπερφόρτωσης ισχύει και στις μεθόδους (method overloading). Μπορούμε δηλαδή να δημιουργήσουμε μεθόδους με το ίδιο όνομα, αλλά με διαφορετικό ορισμό και άλλα ορίσματα, άρα με διαφορετική υπογραφή. Η Java έχει τη δυνατότητα να τις ξεχωρίζει και κάθε φορά να εκτελεί τη μέθοδο που πρέπει από τον α- ριθμό και τον τύπο των ορισμάτων τους. Η κληρονομικότητα των κλάσεων Η κληρονομικότητα είναι μια από τις βασικές ιδέες του αντικειμενοστρεφούς προγραμματισμού. Με την κληρονομικότητα επιτυγχάνεται η επαναχρησιμοποίηση κώδικα ο οποίος έχει ήδη γραφεί και είναι ένα από τα σημαντικά πλεονεκτήματα των γλωσσών ΟΟP σε σχέση με τις συμβατικές γλώσσες. Σύμφωνα με την ιδέα αυτή, ένα αντικείμενο μπορεί να κληρονομεί τα δεδομένα και τις μεθόδους ενός άλλου αντικειμένου. Μπορεί επίσης να τους επιφέρει τροποποιήσεις. Στην Java, όλες οι κλάσεις (οι διαθέσιμες, καθώς και αυτές που γράφουμε), ακολουθούν μια ιεραρχία. Κάθε κλάση έχει μια υπερκλάση (superclass), η οποία βρίσκεται ιεραρχικά πάνω από αυτή. Μπορεί επίσης να έχει μία ή περισσότερες υποκλάσεις (subclasses), οι οποίες βρίσκονται σε κατώτερο επίπεδο ιεραρχίας, όπως φαίνεται στο πιο κάτω σχήμα: Η Class 1 είναι υπερκλάση της Class 2. H Class 2 είναι υποκλάση της Class 1 και υπερκλάση των Class 3, Class 4, Class 5 και Class 6. Οι κλάσεις Class 3, Class 4, Class 5 και Class 6 είναι υποκλάσεις της Class 2. Οι υποκλάσεις κληρονομούν αυτόματα όλες τις μεταβλητές και τις μεθόδους από τις υπερκλάσεις τους. Στην κορυφή όλων των κλάσεων της Java βρίσκεται η κλάση Object. Όλες οι κλάσεις κληρονομούν από αυτή την υπερκλάση. Έτσι, όταν ορίζουμε μια κλάση για την οποία δεν υπάρχει ορισμός υπερκλάσης, η Java θεωρεί αυτόματα ότι η οριζόμενη κλάση είναι υποκλάση της Object.

18 174 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Για να καταλάβουμε την κληρονομικότητα, ας πάρουμε ένα θεωρητικό αλλά διδακτικό παράδειγμα, το παράδειγμα του αυτοκινήτου: Για να φτιάξουμε μια κλάση που περιγράφει το αυτοκίνητο, θα πρέπει να φροντίσουμε να συμπεριληφθούν μερικές χαρακτηριστικές ιδιότητες, όπως η εταιρεία κατασκευής του, το μοντέλο του, η τιμή του, η μέγιστη ταχύτητα που μπορεί να αναπτύξει, ο αριθμός των θυρών του, οι τροχοί του κ.λπ. Η κλάση αυτή μπορεί να οριστεί στην Java ως εξής: Class Car String manufacturer; String model; int maximumspeed; int price; int numdoors; int numwheels=4; Έστω τώρα ότι θέλουμε να φτιάξουμε μια αντίστοιχη κλάση για μοτοσικλέτες. Η κλάση αυτή θα περιέχει ανάλογα χαρακτηριστικά με την κλάση του αυτοκινήτου, εκτός από τις θύρες και τον αριθμό των τροχών. Θα μπορούσαμε λοιπόν να γράψουμε: class motorcycle String manufacturer; String model; int maximumspeed; int price; int numwheels=2; Αφού λοιπόν οι δύο κλάσεις έχουν τόσα πολλά παρόμοια χαρακτηριστικά, θα ήταν καλύτερα να κάνουμε κάτι διαφορετικό: να φτιάξουμε μια κλάση την οποία να ονομάσουμε "όχημα με ρόδες και μηχανή (motorvehicle)". Η κλάση motorvehicle θα ο- ριστεί έτσι ώστε να περιέχει όλα τα κοινά χαρακτηριστικά αυτοκινήτων και μοτοσικλετών. Έπειτα θα ορίσουμε δύο υποκλάσεις, την "Car" και τη "motorcycle", κάθε μία από τις οποίες θα έχει τα γενικά χαρακτηριστικά της υπερκλάσης "motorvehicle". Με βάση αυτά που είπαμε, η κλάση motorvehicle θα οριστεί ως εξής: class motorvehicle String manufacturer; String model;

19 Κεφάλαιο 5: Κλάσεις και αντικείμενα 175 int maximumspeed; int price; int numwheels; Για να δηλώσουμε ότι οι κλάσεις "Car" και "motorcycle" είναι υποκλάσεις, χρησιμοποιούμε τη λέξη extends. class Car extends motorvehicle int numwheels=4; int numdoors; και class motorcycle extends motorvehicle int numwheels=2; Οι κλάσεις "Car" και "motorcycle", εκτός από τις ιδιότητες που ορίζονται στο εσωτερικό τους, κληρονομούν (άρα μπορούν να χρησιμοποιήσουν) και τις ιδιότητες manufacturer, model, maxspeed, και price από την υπερκλάση motorvehicle. Η κληρονομικότητα μπορεί να εκτείνεται και σε περισσότερα από ένα επίπεδα (multilevel inheritance). Μπορεί λ.χ. να ορίσουμε τα αγροτικά αυτοκίνητα ως υποκλάση της κλάσης Car, η οποία να έχει ως χαρακτηριστικό την "καρότσα" (carrier) και βέβαια τις δύο θύρες. class wain extends Car int carrier; int numdoors=2; Πρέπει να σημειώσουμε ότι η έννοια της κληρονομικότητας πολλών επιπέδων είναι κάτι διαφορετικό από την έννοια της πολλαπλής κληρονομικότητας (multiple inheritance) που υπάρχει σε άλλες γλώσσες (όπως η C) και αναφέρεται στη δυνατότητα μιας κλάσης να κληρονομεί από διαφορετικές και μη σχετιζόμενες υπερκλάσεις. Στην κληρονομικότητα εμφανίζεται το φαινόμενο της "παράκαμψης μεθόδου" (method overriding) 2 : Συμβαίνει αρκετές φορές σε μια υποκλάση να ορίζεται ξανά 2 Η παράκαμψη μεθόδου στα ελληνικά αποδίδεται πολλές φορές και ως ακύρωση μεθόδου.

20 176 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA μια μέθοδος, η οποία είχε οριστεί και σε μια κλάση ανώτερου επιπέδου επειδή ο αρχικός ορισμός της δεν κάνει ακριβώς αυτό που θέλουμε. Η μέθοδος στην υποκλάση έχει την ίδια υπογραφή με αυτήν της υπερκλάσης (όνομα, αριθμό, και τύπο ορισμάτων). Κατά κάποιον τρόπο δηλαδή, η νέα μέθοδος "καταργεί" τη δράση της αρχικής. Παράδειγμα Δημιουργούμε την κλάση "σημείο" (Point.java) ως εξής: public class Point protected double x; protected double y; //ο πρώτος κατασκευαστής public Point(double xcor, double ycor) x=xcor; y=ycor; // ο δεύτερος κατασκευαστής public Point () x=0.0; y=0.0; // ο τρίτος κατασκευαστής public Point(Point point) x=point.x; y=point.y; //μέθοδος για να πάρουμε τη συνιστώσα x public double getx() return x;

21 Κεφάλαιο 5: Κλάσεις και αντικείμενα 177 //μέθοδος για να πάρουμε τη συνιστώσα y public double gety() return y; /*μέθοδος για να μετατρέψουμε τις συντεταγμένες του σημείου σε αλφαριθμητικό */ public String tostring() return "(" + x+", " + y + ")"; Αποθηκεύουμε το πρόγραμμα (Point.java) και το μεταγλωττίζουμε (javac Point.java). Στη συνέχεια δημιουργούμε μία κλάση, την κλάση Cycle.java (προσοχή, όχι τη Circle.java που δημιουργήσαμε σε προηγούμενα παραδείγματα) ως υποκλάση της Point.java. Η κλάση Cycle.java καλεί την υπερκλάση Point.java για να δημιουργήσει ένα σημείο ως το κέντρο ενός κύκλου, και στη συνέχεια "γράφει" την ακτίνα του. public class Cycle extends Point protected double radius; static double Pi=3.14; //πρώτος κατασκευαστής public Cycle( double x1, double y1, double r1) super (x1, y1); radius= (r1>=0?r1:0.0); //δεύτερος κατασκευαστής public Cycle () radius=0.0;

22 178 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA public double area() return Pi*radius*radius; public String tostring() return "x= "+x+","+" y= "+ y+","+" r="+radius; Η δεσμευμένη λέξη super χρησιμεύει για την κλήση μελών της υπερκλάσης μιας κλάσης. Όταν χρησιμοποιείται με τη μορφή super(), καλεί τον κατασκευαστή της υπερκλάσης. Όταν χρησιμοποιείται με τη μορφή super.f(), καλεί τη συνάρτηση f(), η οποία έχει οριστεί στην υπερκλάση. Στον προηγούμενο κώδικα, με την εντολή super (x1, y1) καλέσαμε τον κατασκευαστή Point της υπερκλάσης της Cycle και "περάσαμε" σ αυτόν τα ορίσματα x1 και y1 για να δώσουμε αρχικές τιμές στις μεταβλητές του x και y. Δημιουργούμε τώρα μία ακόμη κλάση, την κλάση ColorCycle.java, στην οποία προσθέτουμε μια ιδιότητα, το "χρώμα". public class ColorCycle extends Cycle protected String color; public ColorCycle (double x2, double y2, double r2, String c) super (x2, y2, r2); color=c; public String getcolor() return color; public String tostring() return "x= "+x+","+" y= "+ y+","+" r="+radius+","+ "color="+color; Αποθηκεύουμε και μεταγλωττίζουμε το πρόγραμμα ColorCycle.java.

23 Κεφάλαιο 5: Κλάσεις και αντικείμενα 179 Για να τα δοκιμάσουμε όλα αυτά, φτιάχνουμε το πρόγραμμα showinheritance.java. public class showinheritance public static void main (String[] args) Point p1; Cycle c1; ColorCycle colorc1; p1 = new Point (50.5,70.5); c1= new Cycle (40.0, 50.0, 70.5); colorc1 = new ColorCycle (30.0, 40.0, 20.0, "Red"); //Οι συντεταγμένες του σημείου σε μορφή string System.out.println("The point:"+p1.tostring()); /*Οι συντεταγμένες του κύκλου c1 και η ακτίνα του παράκαμψη της μεθόδου tostring() */ System.out.println("The cycle:"+c1.tostring()); //το εμβαδόν του κύκλου με τη χρήση της μεθόδου area() System.out.println("The cycle area:"+c1.area()); //παράκαμψη μεθόδου tostring() -- τα στοιχεία του colorc1 System.out.println("The colorcycle:"+colorc1.tostring()); /*εμβαδόν του colorc1 -- χρηση της μεθόδου area() από την υπερκλάση */ System.out.println("The colorcycle.area="+colorc1.area()); /*εμφάνιση του "χρωματος" του κύκλου με τη μεθοδο getcolor*/ System.out.println ("The colorcycle' color= "+colorc1.getcolor()); Η εκτέλεση του προγράμματος δίνει το αποτέλεσμα που φαίνεται στην επόμενη εικόνα. Στο αποτέλεσμα: The colorcycle:x= 30.0, y= 40.0, r=20.0,color=red, παρατηρούμε ότι η μέθοδος tostring(), η οποία ορίζεται στην κλάση ColorCycle, παρακάμπτει τη μέθοδο tostring, που ορίζεται στην κλάση Cycle καθώς και στην κλάση Point.

24 180 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Τελικές κλάσεις και μέθοδοι Σε περιπτώσεις κατά τις οποίες θέλουμε μια κλάση να μην δημιουργεί υποκλάσεις, δηλώνουμε την κλάση αυτή ως τελική (final). Μια κλάση που έχει δηλωθεί ως τελική δεν μπορεί να είναι υπερκλάση. Εάν π.χ. δηλώσουμε public final class MyClass αυτή η δήλωση κάνει το μεταγλωττιστή να μην επιτρέπει τη δημιουργία υποκλάσεων της κλάσης MyClass. Μπορούμε επίσης να δηλώσουμε και μια μέθοδο ως τελική. Αυτό γίνεται για να μην είναι δυνατό η μέθοδος αυτή να ακυρωθεί. public final double area() Η δήλωση final μπορεί να χαρακτηρίσει και μια μεταβλητή καθιστώντας την με αυτόν τον τρόπο σταθερά. Αν δηλαδή δηλώσουμε public final double Pi=3.14; οποιαδήποτε προσπάθεια να τροποποιηθεί η τιμή της Pi θα δημιουργήσει ένα σφάλμα χρόνου μεταγλώττισης (compile time error). Μέθοδοι και κλάσεις αφηρημένου τύπου Στην Java υπάρχει η δυνατότητα να δηλώσουμε μια κλάση ή μια μέθοδο ως αφηρημένη (abstract). Μια μέθοδος αφηρημένου τύπου σε μια κλάση απλώς ορίζεται χωρίς να υλοποιείται. Το κυρίως μέρος της μεθόδου αυτής υλοποιείται σε μια υποκλάση

25 Κεφάλαιο 5: Κλάσεις και αντικείμενα 181 της αρχικής κλάσης (ως αρχική εννοούμε την κλάση στην οποία η μέθοδος ορίσθηκε ως αφηρημένη). Η δήλωση της μεθόδου τελειώνει με ένα ";", όπως παρακάτω: public abstract getname(); (getname() είναι το όνομα που διαλέξαμε για τη μέθοδο). Για να δηλωθεί μια κλάση ως αφηρημένη, χρησιμοποιείται και πάλι η λέξη abstract. Ακολούθως, ορίζουμε μια αφηρημένη κλάση, την κλάση myclass, η οποία περιέχει μια αφηρημένη μέθοδο, τη μέθοδο getname(). public abstract class myclass private String astring; public void show() System.out.println("This is a" + astring); public abstract getname(); Οι διασυνδέσεις Η έννοια της διασύνδεσης (interface) είναι κατά κάποιον τρόπο η απάντηση της Java στην αρχή της πολλαπλής κληρονομικότητας, την οποία συναντάμε σε γλώσσες όπως η C. Μια διασύνδεση παρουσιάζει πολλές ομοιότητες με μια συνηθισμένη κλάση, με τη σημαντική διαφορά ότι καμία από τις μεθόδους που ορίζονται μέσα στη διασύνδεση δεν υλοποιείται. Αντί για αυτό, κάθε τέτοια μέθοδος πρέπει να υλοποιείται μέσα σε μια άλλη κλάση η οποία καλεί τη διασύνδεση. Η κλήση γίνεται με τη λέξη implements μαζί με το όνομα της διασύνδεσης. Η διασύνδεση είναι επίσης μια κατάλληλη περιοχή για να δηλώνουμε σταθερές. Συνοψίζοντας, μπορούμε να πούμε ότι η διασύνδεση είναι ο χώρος όπου μπορούμε να τοποθετήσουμε μια συλλογή από σταθερές καθώς και αφηρημένες μεθόδους, τις οποίες μπορούμε να χρησιμοποιήσουμε σε μια άλλη κλάση, γράφοντας εκεί τον κώδικα για κάθε μέθοδο. Για να ορίσουμε μια διασύνδεση, εργαζόμαστε όπως και στις κλάσεις, αλλά αντί για τη λέξη class χρησιμοποιούμε τη λέξη interface. Στο παράδειγμα που ακολουθεί, δημιουργούμε τη διασύνδεση LengthConversion για τη μετατροπή μονάδων μήκους, στην οποία ορίζουμε κάποιες σταθερές και μεθόδους χωρίς να βάλουμε κώδικα σ' αυτές.

26 182 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA public interface LengthConversion double INCH_TO_CM=2.54; double FT_TO_CM=30.5; double YD_TO_M=0.914; double inchtocm(double inches); double fttocm(double feet); double ydtom (double meters); Κατόπιν φτιάχνουμε την κλάση LengthMethods η οποία καλεί τη διασύνδεση LengthConversion χρησιμοποιώντας τη λέξη implements και δημιουργεί κώδικα για τις μεθόδους της. public class LengthMethods implements LengthConversion public double inchtocm(double inches) return inches*inch_to_cm; public double fttocm(double feet) return feet*ft_to_cm; public double ydtom (double yards) return yards*yd_to_m; Τέλος, με την κλάση showlengthconversion, κάνουμε μια συγκεκριμένη μετατροπή μήκους χρησιμοποιώντας τις μεθόδους της κλάσης LengthMethods. class showlengthconversion public static void main(string[] args) double vinch=10.0; double vcm=0.0; LengthMethods tl=new LengthMethods(); vcm=tl.inchtocm(vinch); System.out.println (vinch+" inches = "+ vcm+" cm");

27 Κεφάλαιο 5: Κλάσεις και αντικείμενα 183 Σε μια κλάση που υλοποιεί τις μεθόδους μιας διασύνδεσης μπορούμε να παραλείψουμε μία ή περισσότερες από τις μεθόδους αυτές, αλλά τότε πρέπει να δηλώσουμε την κλάση ως αφηρημένη. public abstract class LengthClasses implements LengthConversion public double inchtocm(double inches) return inches*inch_to_cm; // δεν συμπεριλάβαμε τις άλλες μεθόδους του interface

28 184 ΕΙΣΑΓΩΓΗ ΣΤΗΝ JAVA Ερωτήσεις και Ασκήσεις 1. Ποια είναι τα πλεονεκτήματα του αντικειμενοστρεφούς προγραμματισμού; 2. Μπορείτε να αναφέρετε μερικές διαφορές ανάμεσα στο δομημένο προγραμματισμό (structured programming) και στον αντικειμενοστρεφή προγραμματισμό (object oriented programming); 3. Τι είναι η κλάση στην Java και σε τι διαφέρει από το αντικείμενο; 4. Με ποια (τρία) μέρη δημιουργούμε μια απλή άδεια κλάση; 5. Με ποιον από τους παρακάτω τρόπους δημιουργούμε ένα αντικείμενο της κλάσης Papadopoulos; α. Papadopoulos pap = new Papadopoulos; β. Papadopoulos pap = (new) * Papadopoulos; γ. Papadopoulos pap = new Papadopoulos (); δ. Papadopoulos pap = new (Papadopoulos); 6. Με ποιον τρόπο μπορούμε να χρησιμοποιήσουμε μέσα από ένα αρχείο κώδικα μια κλάση η οποία έχει οριστεί σε ένα διαφορετικό αρχείο; 7. Τι είναι η υποκλάση (subclass) και τι η υπερκλάση (superclass); Με ποιον τρόπο δημιουργούμε μια υποκλάση; 8. Πώς γίνεται η παράκαμψη μιας μεθόδου, η οποία κληρονομείται από μια υπερκλάση; 9. Για να επιστραφεί μια τιμή ως αποτέλεσμα της δράσης μιας μεθόδου, χρησιμοποιείται η λέξη: α) break β) this γ) return δ) pass 10. Οι κατασκευαστές μιας κλάσης ονομάζονται: α) Main β) Constructor γ) Object δ) με το όνομα της κλάσης 11. Τι διαφορά έχει ο κατασκευαστής από τη μέθοδο; 12. Ποια είναι η διαφορά μεταξύ μιας μεταβλητής η οποία έχει δηλωθεί ως public από μία η οποία έχει δηλωθεί ως private; 13. Σε τι χρησιμεύει η δεσμευμένη λέξη super και σε τι η μέθοδος super(); 14. Πόσους κατασκευαστές μπορεί να έχει μία κλάση; 15. Δημιουργήστε μια κλάση με το όνομα MyDataclass. Προσθέστε στην κλάση ένα πεδίο String με το όνομα data1 ως private.

29 Κεφάλαιο 5: Κλάσεις και αντικείμενα 185 Προσθέστε στην κλάση έναν κατασκευαστή, ο οποίος να παίρνει ως μοναδικό όρισμα μια τιμή για την αρχικοποίηση του πεδίου data1. Μέσα στον κατασκευαστή προσθέστε μία public μέθοδο με όνομα PutData(), η οποία να θέτει τιμή στο data1. Μέσα στον κατασκευαστή προσθέστε μία public μέθοδο με όνομα TakeData(), η οποία να λαμβάνει την τιμή του data1. Αφού τελειώσετε, μεταγλωττίστε τον κώδικα που φτιάξατε. 16. Δημιουργήστε μια υποκλάση της MyDataclass με όνομα MyDataclass1. Μέσα σε αυτή: Προσθέστε ένα πεδίο private τύπου int με όνομα data2. Προσθέστε μια public μέθοδο με όνομα CreateString(). Η μέθοδος αυτή θα επιστρέφει ένα δεδομένο τύπου String που θα συντίθεται από τις τιμές των πεδίων data1 και data2. Προσθέστε μια public μέθοδο PutData2(), η οποία να θέτει τιμή στη μεταβλητή data2. Προσθέστε μια public μέθοδο TakeData2(), η οποία να παίρνει την τιμή της data2. Προσθέστε έναν κατασκευαστή με ορίσματα για τις αρχικές τιμές των data1 και data Φτιάξτε μια κλάση, έστω την testmydataclass1, με την οποία να δοκιμάσετε τη λειτουργία της MyDataclass1.

30

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi 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 υποστηρίζει

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

Περιεχόμενα. Περιεχόμενα. Πρόλογος...17

Περιεχόμενα. Περιεχόμενα. Πρόλογος...17 Περιεχόμενα Περιεχόμενα Περιεχόμενα κεφαλαίου Πρόλογος...17 Κεφάλαιο 1 Εισαγωγή... 19 Τι είναι η Java...19 Η ιστορία της Java...23 Εκδόσεις της Java...25 Ξεκίνημα με την Java...27 Το περιβάλλον της γλώσσας...33

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))

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

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1 Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

ΚΕΦΑΛΑΙΑ. 2.5.1 attributes 2.5.2 parameters

ΚΕΦΑΛΑΙΑ. 2.5.1 attributes 2.5.2 parameters Vellum Object Oriented Programming - Java Certificate Πιστοποιητικό ανάπτυξης εφαρµογών αντικειµενοστραφούς προγραµµατισµού µε την γλώσσα Java Vellum Global Educational Services Σελίδα 1 από 1 Vellum Object

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

Περιεχόμενα. Πρόλογος 11

Περιεχόμενα. Πρόλογος 11 Περιεχόμενα Πρόλογος 11 1 Εισαγωγή 19 1.1 Πριν από την ανάγνωση αυτού του βιβλίου 20 1.2 Μια θεώρηση του υπολογιστή 22 1.3 Εφαρμογές και μικροεφαρμογές Java 24 1.4 JavaScript και JSP 26 1.5 Η δομή του

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

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

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Προγραμματισμός Διαδικτύου Ενότητα 3 : Κατηγορίες και κληρονομικότητα Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής

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

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

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

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Βιοϊατρική τεχνολογία

Βιοϊατρική τεχνολογία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Βιοϊατρική τεχνολογία Ενότητα 5: Οξύμετρο (OxyPro Project) Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr ΕΕΔΙΠ Μπέλλου Σοφία e-mail: sbellou@uowm.gr

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

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

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #6 η : Η λέξη κλειδί this, υπερφόρτωση μεθόδων, κληρονομικότητα, πολυμορφισμός, υπερκάλυψη, επίπεδα προσπέλασης Γαβαλάς Δαμιανός dgavalas@aegean.gr

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

8. Μέθοδοι (Methods)

8. Μέθοδοι (Methods) 8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

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

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

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

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

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

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

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

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩN ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟΔΟΣ: ΙΟΥΝΙΟΣ 2015 (10/7/2015) ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α 1. (3.5 μονάδες)

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

Εφαρμογή Αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο

Εφαρμογή Αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εφαρμογή Αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο Καβάλα 2012 Σπουδαστής : Λιάνος Άγγελος,

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο

που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο Το παρόν εκπονήθηκε στο πλαίσιο του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ» της Πράξης «Επαγγελµατικό λογισµικό στην ΤΕΕ: επιµόρφωση και εφαρµογή» (Γ ΚΠΣ, ΕΠΕΑΕΚ, Μέτρο 2.3, Ενέργεια 2.3.2) που συγχρηµατοδοτείται

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

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

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

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

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

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΟΓ ΟΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc.

Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Paul Deitel. Harvey Deitel. Εκδόσεις: Μ. Γκιούρδας ΟΓ ΟΗ ΕΚ ΟΣΗ. Deitel & Associates, Inc. Deitel & Associates, Inc. Java ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΟΓ ΟΗ ΕΚ ΟΣΗ Paul Deitel Deitel & Associates, Inc. Harvey Deitel Deitel & Associates, Inc. Απόδοση: Μαίρη Γκλα βά Μαθηματικός, MSc Computer Sci ence Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

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

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

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

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου

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

Συλλογές, Στοίβες και Ουρές

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

Βάση Δεδομένων. User Interface - 1 User Interface - 2

Βάση Δεδομένων. User Interface - 1 User Interface - 2 2. Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Ο αντικειμενοστραφής προγραμματισμός, (OOP - Object Oriented Programming), είναι μια προγραμματιστική φιλοσοφία όπως και ο προστακτικός ή ο λογικός προγραμματισμός.

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή...17 O στόχος του βιβλίου και σε ποιους απευθύνεται...19 Πως να διαβάσετε αυτό το βιβλίο...20 Η γλώσσα C++ Ιστορική αναδρομή...21 Τα χαρακτηριστικά της C++...22 Βασικές

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

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11 Περιεχόμενα Πρόλογος... 11 Μέρος 1: Βασικές έννοιες της πληροφορικής... 13 1.1 Windows XP... 15 1.2 Επιφάνεια εργασίας... 19 1.3 Γραμμή εργασιών... 24 1.4 Χειρισμός παραθύρων... 30 1.5 Μενού... 36 1.6

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 3 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι

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

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

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ηµιουργική Εργασία µε Κλάσεις κι Αντικείµενα Τι Θα Μελετήσουµε οµή µιας κλάσης και των µεθόδων της Επιθεώρηση των κλάσεων και των µεθόδων τους Μέθοδοι και this Υπερφόρτωση µεθόδων

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

API: Applications Programming Interface

API: Applications Programming Interface ÒØ Ñ ÒÓ ØÖ ÔÖÓ» Ñ ÒØ Ñ ÒÓ ØÖ ÔÖÓ Ö ÑÑ Ø Ñ ½ Ö Ø Ò Ô Ö Ø ÒØ Ñ ÒÛÒ ÒÒÓ ôòøóù ÔÖ Ñ Ø Ó ÑÓÙ Ì ÔÓ ÓÑ ÒÛÒ Ì µ (i) ÒÓÐÓØ ÑôÒ (ii)ôö Ü º Ð ØÖ Ò Ò ÖÛÔÓ ØÖ ÔÐ Ò Ø Ó Ó Ù Ø Ñ Ø ººº ½ºÈÖÛØ ÓÒØ Ø ÔÓ int double char

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

Παραδείγματα Χρήσης του DrJava

Παραδείγματα Χρήσης του DrJava Παραδείγματα Χρήσης του DrJava Version 1.1 Επιμέλεια: Κόγιας Δημήτρης, Χαράλαμπος Πατρικάκης, Εργαστήριο Αντικειμενοστραφούς προγραμματισμού [1] Πίνακας Περιεχομένων Κεφάλαιο 1. Προγράμματα για εξάσκηση...

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

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

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Java 7. Οδηγός της. Εκδόσεις: Μ. Γκιούρδας. Herbert Schildt. 5 η ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού

Java 7. Οδηγός της. Εκδόσεις: Μ. Γκιούρδας. Herbert Schildt. 5 η ΕΚ ΟΣΗ. Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Οδηγός της Java 7 5 η ΕΚ ΟΣΗ Herbert Schildt Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2012 www.mgiurdas.gr 00_CONT_java.indd

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships) ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships) Σκοπός Σκοπός των συσχετίσεων είναι να αναπαριστούν την αλληλεπίδραση μεταξύ των κλάσεων και των αντικειμένων. Απεικονίζονται διαγραμματικά με μία γραμμή μεταξύ

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

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets

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

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο. Εργαστήριο #12 Από τα προηγούμενα εργαστήρια: Το εργαστήριο αυτό είναι ανεξάρτητο από τα προηγούμενα επειδή όμως ασχολείται με τη γλώσσα JavaScript, βεβαιωθείτε ότι έχετε διαβάσει το εισαγωγικό Παράρτημα

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

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

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

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

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΒΑΣΙΚΗ ΚΑΙ ΠΑΡΑΓΩΓΕΣ ΚΛΑΣΕΙΣ #include class logariasmos //basikh klash //prostateymeno dedomeno-melos float ypoloipo; logariasmos() //dhlosh constructor ypoloipo=0; float pareypoloipo()

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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