Skip to main navigation Skip to main content Skip to page footer

Τμήμα Φυσικής

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)