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



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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

Προγράμματα με δομή Κληρονομικότητας

Week. 6: Java Collections

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

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

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

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

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

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

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

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

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

Γλώσσες Προγραμματισμού

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

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

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

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

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

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Προγράμματα με δομή Κληρονομικότητας

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Κληρονοµικότητα. Συλλογή από CD και Βίντεο. ιάγραµµα Αντικειµένων. ιάγραµµα Κλάσεων. ΗΠρώτηΑπόπειρα: οπυρήνας

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

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

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

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Εφαρμογή Μεθοδολογίας ICONIX

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

Week 7: Java Collection Classes

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

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

Week 10: Graphical User Interfaces

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

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

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

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

Γενικά (για τις γραπτές εξετάσεις)

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

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

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

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

Certified Java Programmer (CJP)

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

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

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

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

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

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

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

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

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

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

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

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

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Εισαγωγή στην επιστήμη των υπολογιστών

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

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

Ανάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee

ΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance)

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

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

Κάποιες γενικές παρατηρήσεις:

ΑΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής

Αντικειμενοστρέφεια. Ορισμοί αντικειμενοστρέφειας. Κάποιες γενικές παρατηρήσεις: Περιεχόμενα. Ποιοι είναι οι ορισμοί των παρακάτω;

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, 1908

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

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

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

Transcript:

Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή προγραμματισμού Ικανότητα προγραμματισμού στη γλώσσα Java Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 2 Αξιολόγηση Εργασίες*: 15% Διαγώνισμα: 85% * Απαραίτητη η ικανοποιητική συμμετοχή στο εργαστήριο Προσοχή: Η παρακολούθηση των εργαστηρίων και η ολοκλήρωση των ασκήσεων είναι η καλύτερη προετοιμασία για το διαγώνισμα Συγγράμματα Συγγράμματα David Barnes, Michael Kolling, " Αντικειμενοστρεφής προγραμματισμός σε Java. Μια πρακτική εισαγωγή με χρήση Bluej" Εκδόσεις Κλειδάριθμος Γιώργος Λιακέας, " Εισαγωγή στη Java 2" Εκδόσεις Κλειδάριθμος Προαιρετικά The Java Tutorial http://java.sun.com/docs/books/tutorial/ Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 3 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 4 Σελίδα στο internet Όλες οι πληροφορίες σχετικά με το μάθημα είναι διαθέσιμες στη διεύθυνση: www.math.ntua.gr/~symvonis Ακολουθώντας τον σύνδεσμο Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Προαπαιτούμενες γνώσεις Υποθέτω ότι γνωρίζετε Συντακτικό της Java Τι είναι τα αντικείμενα (δεδομένα, λειτουργίες, κλάση) Πώς καλούμε τις μεθόδους Μεταβλητές Τύπους δεδομένων (int, String, char, ) Εντολές επιλογής, εντολές επανάληψης Διανύσματα BlueJ Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 5 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 6

Περιεχόμενα 1 Εισαγωγή στην κληρονομικότητα [inheritance] 2 Πολυμορφισμός [polymorphism] 3 Κλάσεις αφηρημένου τύπου [abstract classes] και διαπροσωπείες [interfaces] 4 Εξαιρέσεις [exceptions] 5 Σχεδιασμός αντικειμενοστρεφών προγραμμάτων 6 Κλάσεις συλλογής δεδομένων [collection classes] 7 Κλάσεις συλλογής δεδομένων (συνέχεια..)? Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 7 Περιεχόμενα (συνέχεια) 8 Στοιχεία σχεδιασμού προγραμμάτων 9 Γραφικό περιβάλλον διασύνδεσης [GUI - Graphical User Interface] 10 Applets and GUIs (συνέχεια..) 11 GUIs (συνέχεια..) έ 12 Επανάληψη Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 8! Κληρονομικότητα [inheritance] Εβδομάδα 1: Κληρονομικότητα [inheritance] Τι είναι η κληρονομικότητα; Γιατί είναι σημαντική; Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 9 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 10 Παράδειγμα DoME: Λειτουργικότητα DoME: Database of Multimedia Entertainment (Μια βάση δεδομένων με s και videos.) Εισαγωγή δεδομένων : title, artist, # tracks, playing time, got-it, : title, director, playing time, got-it, Εκτύπωση λιστών Αναζήτηση Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 11 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 12

Οι κλάσεις Κελυφοποιημένα δεδομένα [encapsulated data] αντικείμενο αντικείμενο title artist #tracks title director gotit Δεδομένα «φυλάσσονται» σε κάθε αντικείμενο Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 13 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 14 Μέθοδοι Το αντικείμενο database αντικείμενο αντικείμενο database s set get set get videos Μέθοδοι επενεργούν πάνω στο κάθε αντικείμενο Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 15 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 16 Κώδικας Java () Ημιτελής (σχόλια!) class String title; String artist; String ; (String thetitle, String theartist) title = thetitle; artist = theartist; = ; void setcomment(string newcomment) String getcomment() void () Κώδικας Java () class String title; String director; String ; (String thetitle, String thedirector) title = thetitle; director = thedirector; = ; void setcomment(string newcomment) String getcomment() void () Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 17 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 18

Κώδικας Java (Database) class Database [] mys; [] mys; void () for(int i=0; i<mys.length; i++) mys[i].(); for(int i=0; i<mys.length; i++) mys[i].(); Μειονεκτήματα Επανάληψη κώδικα στις κλάσεις και Επιπλέον εργασία για τροποποίηση του πηγαίου κώδικα Δυο διανύσματα και επανάληψη κώδικα στην κλάση Database Διάφορα άλλα (θα τα δούμε σύντομα) Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 19 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 20 Η εναλλακτική λύση: κληρονομικότητα Τα πεδία των κλάσεων Σημείωση: «τετράγωνα» εικονίδια αναπαριστούν κλάσεις Οι υποκλάσεις [subclasses] κληρονομούν τα πεδία από τις υπερκλάσεις [superclasses]. artist #tracks title playing time gotit director : title, artist, # tracks, playing time, got-it, : title, director, playing time, got-it, Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 21 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 22 Οι μέθοδοι των κλάσεων Προεκτάσεις Οι υποκλάσεις κληρονομούν τις μεθόδους από τις υπερκλάσεις. setcomment() () () getartist() () getdirector() Music Game : (), getartist(), setcomment(), () : (), getdirector(), setcomment(), () Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 23 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 24

Επιπλέον προεκτάσεις Ορολογία Κλάση βάσης [base class] Υπερκλάση [superclass] Γονέας [parent] Music Game Παραγόμενη κλάση [derived class] Υποκλάση [subclass] Παιδί [child] Game BoardGame Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 25 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 26 Πλεονεκτήματα της κληρονομικότητας Κώδικας Java με χρήση κληρονομικότητας class Αποφυγή επανάληψης κώδικα Επαναχρησιμοποίηση κώδικα Πιο εύκολη συντήρηση κώδικα Επεκτασιμότητα [extendability] class Music extends class extends Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 27 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 28 Διάγραμμα κλάσεων [Class diagram] Database Επίδειξη Music Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 29 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 30

Διάγραμμα αντικειμένων [Object diagram] Πηγαίος κώδικας (χρήστης [client]) Database void list() for (int i = 0; i < mys.length; i++) mys[i].(); Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 31 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 32 Πλεονεκτήματα της κληρονομικότητας Παράκαμψη μεθόδου [Overriding, redefinition] Το πρόβλημα: Αποφυγή επανάληψης κώδικα από τον χρήστη της κλάσης! Η μέθοδος είναι διαφορετική για αντικείμενα τύπου Music και Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 33 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 34 Η μέθοδος Music Εκτύπωση: : Triple J Hottest 100 (79 min) artist: sampler, 33 tracks double - great! Εκτύπωση: : The Matrix (102 min) director: Fred Smith (not seen yet) Επίδειξη Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 35 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 36