Σχολή Θετικών Επιστημών
Τμήμα Φυσικής
18204
18204 Αντικειμενοστραφής Προγραμματισμός (JAVA)
Ιστοσελίδα μαθήματος: https://eclass.uoa.gr/courses/PHYS304/
Περιεχόμενο μαθήματος
- Εισαγωγή στον αντικειμενοστραφή προγραμματισμό, διαφορετικές προσεγγίσεις στην επίλυση προβλημάτων, εισαγωγή στις βασικές έννοιες
- Συντακτικές δομές της γλώσσας προγραμματισμού Java
- Τύποι, κλάσεις, αντικείμενα, πεδία και μέθοδοι μιας κλάσης, αρχικοποίηση αντικειμένων, Ενθυλάκωση, υπερφόρτωση μεθόδων, βασικοί τροποποιητές μεθόδων και πεδίων, null και this, κλήση μεθόδων στην Java
- Κληρονομικότητα, αρχικοποίηση βασικών κλάσεων, παράκαμψη μεθόδων, δυνατότητες υποκλάσεων, Πολυμορφισμός, δυναμική και στατική επίλυση κλήσης μεθόδων, αφηρημένες κλάσεις, η κλάση Object, σφραγισμένες κλάσεις
- Απαριθμήσεις (Enumerations), Διεπαφές (interfaces), διεπαφές και κληρονομικότητα, προεπιλεγμένες μέθοδοι διεπαφών, στατικές και ιδιωτικές μέθοδοι, επανάκληση σαν τεχνική προγραμματισμού (callbacks), κλωνοποίηση αντικειμένων, εκφράσεις λ (lambda expressions), συναρτησιακές διεπαφές, αναφορές μεθόδων, αρχική εισαγωγή σε νήματα / πολυνηματικό προγραμματισμό
- Εσωτερικές κλάσεις, ανώνυμες κλάσεις, τοπικές εσωτερικές κλάσεις, πρότυπο σχεδίασης “Κατασκευαστής” (Builder design pattern)
- Γενικευμένος προγραμματισμός, περιορισμοί και όρια τύπων, διαγραφή τύπων, χειρισμός γενικευμένων τύπων από τον compiler, κληρονομικότητα και διαγραφή τύπων
- Σφάλματα και χειρισμός σφαλμάτων, Συλλογές στην βασική βιβλιοθήκη: Λίστες, Σύνολα, Ουρές, Συσχετιστικοί χάρτες, προβολές συλλογών
- Πολυνηματικός προγραμματισμός, νήματα, καταστάσεις νημάτων, αλληλεπίδραση με νήματα, Locks, Conditions, Συλλογές στον πολυνηματικό προγραμματισμό, νεώτερα πρότυπα πολυνηματικού προγραμματισμού
- Εργαλεία της γλώσσας Java για πολυνηματικό προγραμματισμό: ThreadPools, Executors, CompletableFutures, προβλήματα πολυνηματικού προγραμματισμού: εξαρτήσεις δεδομένων, συνθήκες ανταγωνισμού, προσεγγίσεις που χρησιμοποιούνται σε άλλα programming paradigms
- Εισαγωγή στα παραθυρικά περιβάλλοντα αλληλεπίδρασης, Γραφικές διεπαφές χρήστη, AWT και Swing, βασικά στοιχεία σχεδίασης γραφικών διεπαφών με Swing, Model-View-Controller
- Ρεύματα (streams), επεξεργασία με ρεύματα, suppliers, reducers, transformers
- Βασικά πρότυπα σχεδίασης του αντικειμενοστραφούς προγραμματισμού (design patterns): builder, abstract factory, adapter, composite, decorator, flyweight, chain of responsibility, command, interpreter, mediator, memento, observer, state, visitor pattern
- Προγραμματισμός δικτυακών εφαρμογών, Ασύγχρονος χειρισμός I/O, Java NIO, Reactor Pattern
- Βασική εισαγωγή στη διασύνδεση με βάσεις δεδομένων (JDBC)