Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε πάρει όλοι ένα κοινό σύγγραμμα) Η «ύλη» του μαθήματος εκτείνεται σε οτιδήποτε καλύφθηκε κατά τη διάρκεια των διαλέξεων και εργαστηριών του μαθήματος Στη γραπτή εξέταση μπορείτε να έχετε μαζί σας το σύγγραμμα που σας διανεμήθηκε για το μάθημα και τις σημειώσεις του διδάσκοντα (διαφάνειες διαλέξεων/εργαστηρίων) Δεν επιτρέπεται να φέρετε οποιεσδήποτε άλλες σημειώσεις! Εξυπακούεται ότι απαγορεύεται αυστηρά να ανταλλάσσετε μεταξύ σας βιβλία ή σημειώσεις κατά τη διάρκεια της εξέτασης 1
Γενικά (για τις γραπτές εξετάσεις) Η καλή προετοιμασία για τις εξετάσεις θα πρέπει να στοχεύει σε μια πολύ καλή κατανόηση των βασικών εννοιών αντικειμενοστραφούς προγραμματισμού και της εφαρμογής τους στη Java Προϋποθέτει επίσης εξοικείωση με τις δυνατότητες, ιδιαιτερότητες, βιβλιοθήκες και προγραμματιστικές τεχνικές της γλώσσας Java Εξοικείωση σημαίνει πρακτική εξάσκηση Πέραν του συγγράμματος και των σημειώσεων του διδάσκοντα, στα πρώτα βήματα της πρακτικής σας εξάσκησης με τη γλώσσα Java και το περιβάλλον προγραμματισμού NetBeans μπορούν να σας βοηθήσουν πολλά και καλά online tutorials που μπορείτε να αναζητήσετε στο web, videos στο youtube, κλπ Επανάληψη. Οι διαφάνειες που ακολουθούν στοχεύουν στο να σας υπενθυμίσουν τα σημαντικότερα σημεία στα οποία σταθήκαμε κατά τις 11 προηγούμενες διαλέξεις και να σας υποδείξουν που πρέπει να επικεντρώσετε για την καλύτερη δυνατή προετοιμασία σας για τις εξετάσεις Επισημαίνεται ότι η παράλληλη πρακτική εξάσκηση στα θέματα που καλύφθηκαν στις διαλέξεις αποτελεί βασική προϋπόθεση για την αφομοίωση των αντίστοιχων εννοιών 2
1 η Διάλεξη Οι έννοιες του προγράμματος, προγραμματισμού, γλωσσών προγραμματισμού Επίπεδα προγραμματισμού μ Κατηγορίες προγραμματισμού (σειριακός, δομημένος/διαδικαστικός, αντικειμενοστραφής) και αντιπροσωπευτικές γλώσσες προγραμματισμού για κάθε κατηγορία Μεταγλώττιση και διερμηνεία στη γλώσσα Java Πλεονεκτήματα και παραδείγματα εφαρμογών Java 2 η Διάλεξη Διαδικασία δημιουργίας, μεταγλώττισης και εκτέλεσης προγραμμάτων στη Java Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: μ Κλάση Αντικείμενο & στιγμιότυπο Μέθοδος Ιδιότητα Κληρονομικότητα (υπερκλάσεις ή γονικές κλάσεις, υποκλάσεις, κλπ) Βασικά χαρακτηριστικά της γλώσσας προγραμματισμού Java 3
3 η Διάλεξη H "Write Once, Run Anywhere" υπόσχεση της Java Γιατί είναι χρήσιμα εργαλεία ανάπτυξης όπως το NetBeans Κλάσεις, αντικείμενα και κατασκευαστές Δημιουργία απλών κλάσεων στη Java Ορισμός ιδιοτήτων, κατασκευαστών και μεθόδων μιας κλάσης Δημιουργία αντικειμένων (με κλήση κάποιου κατασκευαστή) static μεταβλητές public και private μεταβλητές και μέθοδοι Η μέθοδος Math.random() για τη δημιουργία τυχαίων αριθμών (κοιτάξτε τις αντίστοιχες εργαστηριακές ασκήσεις) 4 η Διάλεξη Δηλώσεις μεταβλητών στη Java Πρωτογενείς τύποι μεταβητών Τελεστές Αλλαγή τύπου (Type Casting) Να ξέρετε πως γίνονται οι μετατροπές μεταξύ διαφορετικών τύπων (π.χ. double > int, int > String, String > int, κλπ) Συνένωση συμβολοσειρών Εμφάνιση εξόδου στην κονσόλα System.out.println( ) Εμφάνιση εξόδου και λήψη εισόδου από πλαίσια διαλόγου JOptionPane.showMessageDialog( ) JOptionPane.showInputDialog( ) 4
4 η Διάλεξη Συμβάσεις ονοματοδοσίας μεταβλητών Τρόπος κατάλληλης στοίχισης Τύποι προγραμματιστικών σφαλμάτων Σύνταξη και χρήση συνθηκών if ( ) else ( ) switch Σύνταξη και χρήση βρόγχων επανάληψης for while ( ) Δηλώσεις break και continue 5 η Διάλεξη Μέθοδοι Δημιουργία μεθόδων με χρήση κατάλληλων παραμέτρων και τύπων επιστροφής Κλήση μεθόδων, περνώντας τις κατάλληλες παραμέτρους και αποθηκεύοντας την τιμή που επιστρέφεται (εφόσον υπάρχει) Η μέθοδος main() Πεδίο ή φάσμα (scope) μεταβλητών Η μέθοδος Math.random() Πακέτα (packages) Ορισμός, δημιουργία, αρχικοποίηση και χρήση πινάκων Μέθοδοι της κλάσης java.util.arrays Πίνακες από αντικείμενα 5
6 η Διάλεξη Η λέξη κλειδί this Υπερφόρτωση μεθόδων (overloading) Κληρονομικότητα Δημιουργία κλάσης (υποκλάσης) που κληρονομεί κάποια άλλη (υπερκλάση ή γονική κλάση) Η λέξη κλειδί super Υπερκάλυψη (overriding): πολύ καλή κατανόηση των παραδειγμάτων υπερκάλυψης Επίπεδα Προσπέλασης 7 η Διάλεξη Εξαιρέσεις (ελεγμένες και μη ελεγμένες) Πως προκύπτουν Πως αντιμετωπίζονται Ενότητες try catch Είσοδος / Έξοδος στη Java Ρεύματα εισόδου/εξόδου Απλά παραδείγματα με ρεύματα δεδομένων Κλάσεις InputStream/OutputStream και DataInputStream /DataOutputStream 6
8 η Διάλεξη Τα βασικά των γραφικών διεπαφών στη Java Δημιουργία πλαισίων (frames) Εισαγωγή γραφικών στοιχείων (components) σε πλαίσια, Διαχειριστές διάταξης (Layout Managers) Οι κλάσεις Color και Font Συμβάντα, χειριστές συμβάντων Τι είναι και πως πυροδοτείται ένα συμβάν To μοντέλο ανάθεσης συμβάντων (event delegation model) στη Java Τύποι και χειρισμός συμβάντων 9 η Διάλεξη Μικροεφαρμογές (Applets) Τι είναι και σε τι διαφέρουν από τις εφαρμογές (applications) Περιορισμοί ασφαλείας σε applets Δομή applets Έμφαση στις μεθόδους init() και paint() Πως ενσωματώνονται Java applets σε ιστοσελίδες Είσοδος χρήστη σε Java Applets (πως ορίζονται παράμετροι στον HTML κώδικα και πως διαβάζονται από το applet Γραφικά Χρήση γραφικών σε applets και applications Ορισμός γραμματοσειράς και χρώματος Εμφάνιση μηνυμάτων και σχεδιασμός γεωμετρικών σχημάτων 7
10 η Διάλεξη Ίνες και πολυνηματικός προγραμματισμός Οι έννοιες του νήματος (thread) και του πολυνηματισμού (multithreading) Παραδείγματα πολυνηματικών εφαρμογών Δημιουργία νημάτων Εκτέλεση νημάτων 11 η Διάλεξη Διαδικτυακές Εφαρμογές με τη Java Οι έννοιες της IP διεύθυνσης, θύρας, υποδοχής Εγκατάσταση σύνδεσης μεταξύ πελάτη διακομιστή Επικοινωνία (ανταλλαγή δεδομένων) μεταξύ πελάτηδιακομιστή Η κλάση URL 8