Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Πολυµορφισµός και Αφηρηµένες κλάσεις. Εισαγωγή στον Πολυµορφισµό
|
|
- Ζώσιμη Σπανού
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 5η: 29/03/2006 & 30/03/ Πολυµορφισµός και Αφηρηµένες κλάσεις Polymorphism and Abstract Classes 2 Εισαγωγή στον Πολυµορφισµό Υπάρχουν τρεις προγραµµατιστικοί µηχανισµοί που συνιστούν στον Αντικειµενοστραφή Προγραµµατισµό (OOP) Ενθυλάκωση - Encapsulation Κληρονοµικότητα - Inheritance Πολυµορφισµός - Polymorphism Πολυµορφισµός είναι η ικανότητα να συσχετίζουµε πολλές έννοιες στο όνοµα µιας µεθόδου Αυτό γίνεται διαµέσου ενός ειδικού µηχανισµού που είναι γνωστός ως καθυστερηµένη σύνδεση ((late binding) ή δυναµική σύνδεση (dynamic binding) 3 1
2 Εισαγωγή στον Πολυµορφισµό Με την κληρονοµικότητα µπορούµεναορίσουµε µια βασική κλάση, και κατόπιν να παράξουµε νέες από αυτή Ο κώδικας της βασικής κλάσης µπορεί να χρησιµοποιηθείγιαταδικάτηςαντικείµενα, καθώς και γιατααντικείµενα των παραγόµενων κλάσεων Με τον πολυµορφισµό µπορούµενακάνουµε αλλαγές στους ορισµούς των µεθόδων στις παραγόµενες κλάσεις, και να πετύχουµε οι αλλαγές αυτές να επιδρούν στο λογισµικό που έχει γραφεί για τη βασική κλάση 4 Late Binding Η διαδικασία συσχέτισης του ορισµού µιας µεθόδου µε την ενεργοποίηση µιας µεθόδου ονοµάζεται σύνδεση (binding) Εάν ο ορισµός της µεθόδου συσχετιστεί µε την ενεργοποίηση όταν µεταγλωττίζεται ο κώδικας, τότε έχουµε τηνπρώιµησύνδεση(early binding) Εάν ο ορισµός της µεθόδου συσχετίζεται µε την ενεργοποίηση όταν ενεργοποιηθεί η µέθοδος, τότε έχουµε καθυστερηµένη σύνδεση (late binding) ή δυναµική σύνδεση (dynamic binding) 5 Late Binding Η Java χρησιµοποιεί την τεχνική late binding για όλες τις µεθόδους (εκτός από τις private, final,και static µεθόδους) Εξαιτίας του late binding, µια µέθοδος µπορεί να γραφεί σε µια βασική κλάση για να εκτελεί µια ενέργεια, ακόµακαιεάντµήµατα αυτής της ενέργειας δεν έχουν ακόµαοριστεί Για παράδειγµα, θα εξετάσουµε τησχέσηµιας βασικής κλάσης µεόνοµα Sale και µιας παραγόµενής της µεόνοµα DiscountSale 6 2
3 Οι κλάσεις Sale και DiscountSale ΗκλάσηSale περιέχει δυο instance variables name: το όνοµα ενόςστοιχείου(string) price: ητιµή ενόςστοιχείου(double) Περιέχει τρεις constructors Έναν no-argument constructor που θέτει το name στην τιµή "No name yet", και την τιµή σε0.0 Έναν constructor µεδυοπαραµέτρους που δέχεται ένα String (για το name) και έναν double (για την price) Έναν copy constructor που δέχεται ως παράµετρο ένα αντικείµενο Sale 7 Οι κλάσεις Sale και DiscountSale Η κλάση Sale έχει επίσης ένα σύνολο µεθόδων accessors µεθόδων (getname, getprice), µεθόδων mutators (setname, setprice), overridden µεθόδων equals και tostring, και µια static announcement µέθοδο ΗκλάσηSale έχει µια µέθοδο bill, που καθορίζει τη χρέωση για µια πώληση, η οποία απλά επιστρέφει την τιµή του στοιχείου Έχει δυο µεθόδους, equaldeals και lessthan, κάθε µια εκ των οποίων συγκρίνει δυο αντικείµενα µε σύγκριση τωνχρεώσεώντους(bills) και επιστρέφει µια τιµή boolean 8 Οι κλάσεις Sale και DiscountSale ΗκλάσηDiscountSale κληρονοµεί τις instance variables και µεθόδους της κλάσης Sale Επιπρόσθετα, έχει τη δική της instance variable, discount (ποσοστό επί της price), και τους δικούς της constructor methods, µέθοδο accessor (getdiscount), µέθοδο mutator (setdiscount), overriden µέθοδο tostring, και τη static µέθοδο announcement ΗκλάσηDiscountSale έχει τη δική της µέθοδο bill που υπολογίζει το bill ως συνάρτηση της discount και της price 9 3
4 Οι κλάσεις Sale και DiscountSale Η µέθοδος lessthan της κλάσης Sale Σηµειώστε τις ενεργοποιήσεις της µεθόδου bill() : public boolean lessthan (Sale othersale) if (othersale == null) System.out.println("Error: null object"); System.exit(0); return (bill( ) < othersale.bill( )); 10 Οι κλάσεις Sale και DiscountSale Η µέθοδος bill() της κλάσης Sale : public double bill( ) return price; Η µέθοδος bill() της κλάσης DiscountSale : public double bill( ) double fraction = discount/100; return (1 - fraction) * getprice( ); 11 Οι κλάσεις Sale και DiscountSale εδοµένου του ακόλουθου προγράµµατος:... Sale simple = new sale("floor mat", 10.00); DiscountSale discount = new DiscountSale("floor mat", 11.00, 10);... if (discount.lessthan(simple)) System.out.println("$" + discount.bill() + " < " + "$" + simple.bill() + " because late-binding works!");... Ηέξοδοςθαείναι: $9.90 < $10 because late-binding works! 12 4
5 Οι κλάσεις Sale και DiscountSale Στο προηγούµενο παράδειγµα, η boolean έκφραση στη δήλωση if επιστρέφει true Όπως δείχνει η έξοδος, όταν εκτελείται η µέθοδος lessthan στην κλάση Sale, γνωρίζει ποια µέθοδο bill() να ενεργοποιήσει Τη µέθοδος bill() της κλάσης DiscountSale για discount, και τη µέθοδο bill() της κλάσης Sale για simple Σηµειώστε ότι δηµιουργήθηκε και µεταγλωττίστηκε η κλάση Sale, ηκλάσηdiscountsale και η µέθοδός της bill() δεν υπήρχαν Αυτά τα αποτελέσµατα είναι εφικτά µετοµηχανισµό latebinding 13 Παγίδα: Όχι late binding για static µεθόδους Όταν γίνεται η απόφαση κατά τη µεταγλώττιση για το ποια µέθοδο θα χρησιµοποιηθεί, αυτό αποκαλείται στατική σύνδεση (static binding) Αυτή η απόφαση γίνεται µεβάσητον τύπο της µεταβλητής που ονοµατίζει το αντικείµενο Η Java χρησιµοποιεί static binding, όχι late binding για τις private, final, και static µεθόδους Στην περίπτωση των private και των final µεθόδων, το late binding δεν θα εξυπηρετούσε κανένα σκοπό Όµως, στην περίπτωση µιας static µεθόδου που ενεργοποιείται µε χρήση ενός καλούντος αντικειµένου, δεν έχει καµία διαφορά 14 Παγίδα: Όχι late binding για static µεθόδους Η µέθοδος announcement() της κλάσης Sale : public static void announcement( ) System.out.println("Sale class"); Η µέθοδος announcement() της κλάσης DiscountSale : public static void announcement( ) System.out.println("DiscountSale class"); 15 5
6 Παγίδα: Όχι late binding για static µεθόδους Στο προηγούµενο παράδειγµα, δηµιουργήθηκαν τα αντικείµενα simple (της κλάσης Sale) και discount (της κλάσης DiscountClass) εδοµένης της ακόλουθης ανάθεσης: simple = discount; Οι δυο µεταβλητές δείχνουν στο ίδιο αντικείµενο Ειδικότερα, η µεταβλητή τύπου κλάσης Sale ονοµατίζει ένα αντικείµενο DiscountClass 16 Παγίδα: Όχι late binding για static µεθόδους εδοµένης της ενεργοποίησης: simple.announcement(); Ηέξοδοςείναι: Sale class Σηµειώστε ότι εδώ,η µέθοδος announcement είναι static που ενεργοποιείται από ένα καλούν αντικείµενο (αντί για το όνοµατηςκλάσηςτης) Εποµένως ο τύπος της simple προσδιορίζεται από το όνοµα τηςµεταβλητής, όχιαπόαπότοαντικείµενο στο οποίο αναφέρεται 17 Παγίδα: Όχι late binding για static µεθόδους Υπάρχουν άλλες περιπτώσεις όπου µια static µέθοδος έχει καλούν αντικείµενο Για παράδειγµα, µια static µέθοδος µπορεί να ενεργοποιηθεί µέσα στον ορισµό µιας non-static µεθόδου, αλλά χωρίς να υπάρχει ρητά το όνοµα κλάσηςή το καλούν αντικείµενο Στην περίπτωση αυτή, το καλούν αντικείµενο είναι το this 18 6
7 Ο modifier final Μια µέθοδος που σηµειώνεται ως final σηµαίνει ότι δεν µπορεί να γίνει override µε νέοορισµό σε µια παραγόµενη κλάση Εάν είναι final, ο compiler µπορεί να χρησιµοποιήσει early binding µε τη µέθοδο αυτή public final void somemethod()... Μια κλάση που σηµειώνεται ως final σηµαίνει ότι δεν µπορεί να χρησιµοποιηθεί ως βασική κλάση από την οποία να παράξουµε άλλες κλάσεις 19 Late binding µε τηµέθοδο tostring Εάν µια κατάλληλη µέθοδος tostring οριστεί για µια κλάση, τότε ένα αντικείµενο αυτής της κλάσης µπορεί να τυπωθεί µετη System.out.println Sale asale = new Sale("tire gauge", 9.95); System.out.println(aSale); Η έξοδος που παράγεται: tire gauge Price and total cost = $9.95 Αυτή δουλεύει εξαιτίας του late binding 20 Late binding µε τηµέθοδο tostring Ένας ορισµός της µεθόδου println δέχεται ως όρισµα ένα αντικείµενο τύπου Object: public void println(object theobject) System.out.println(theObject.toString()); Με τη σειρά της, ενεργοποιεί τη println που δέχεται ένα όρισµα τύπου String Σηµειώστε ότι η µέθοδος println ορίστηκε πριν αναπτυχθεί η κλάση Sale Όµως, εξαιτίας του late binding, χρησιµοποιείται η µέθοδος tostring της κλάσης Sale, και όχι η µέθοδος tostring της κλάσης Object 21 7
8 Κάθε αντικείµενο γνωρίζει τους ορισµούς των µεθόδων του Οτύποςµιας µεταβλητής κλάσης καθορίζει ποια ονόµατα µεθόδων µπορούν να χρησιµοποιηθούν µε τηµεταβλητή Όµως, το αντικείµενο που ονοµατίζεται µετη µεταβλητή καθορίζει ποιος ορισµός µε τοίδιοόνοµα µεθόδου θα χρησιµοποιηθεί Μια ειδική περίπτωση αυτού του κανόνα έχει ως εξής: Οτύποςµια παραµέτρου τύπου κλάσης καθορίζει ποια ονόµατα µεθόδων µπορούν να χρησιµοποιηθούν µε την παράµετρο Το όρισµα καθορίζει ποιος ορισµός της µεθόδου θα χρησιµοποιηθεί 22 Upcasting και Downcasting Upcasting είναι όταν ένα αντικείµενο µιας παραγόµενης κλάσης ανατίθεται σε µια µεταβλητή τύπου της βασικής κλάσης (ή οποιασδήποτε κλάσης προγόνου) Sale salevariable; //Base class DiscountSale discountvariable = new DiscountSale("paint", 15,10); //Derived class salevariable = discountvariable; //Upcasting System.out.println(saleVariable.toString()); Εξαιτίας του late binding, η tostring χρησιµοποιεί τον ορισµό πουπαρέχεταιστηνκλάσηdiscountsale 23 Upcasting και Downcasting Downcasting είναι όταν εκτελείται µια προσαρµογή τύπου (type cast) από µια βασική κλάση σε µια παραγόµενη (ήαπόµια κλάση πρόγονο σε µια οποιαδήποτε κλάση απόγονο) Το downcasting πρέπει να γίνεται πολύ προσεκτικά Σε αρκετές περιπτώσεις δεν έχει νόηµα, ήδενείναιέγκυρο: discountvariable = //will produce (DiscountSale)saleVariable;//run-time error discountvariable = salevariable //will produce //compiler error Υπάρχουν περιπτώσεις όµως, όπου το downcasting είναι απαραίτητο, π.χ., µέσα στη µέθοδο equals για µια κλάση: Sale othersale = (Sale)otherObject;//downcasting 24 8
9 Παγίδα: Downcasting Είναι στην ευθύνη του προγραµµατιστή να χρησιµοποιήσει το downcasting µόνο στις περιπτώσεις όπου έχει νόηµα Ο compiler δεν ελέγχει εάν το downcasting έχει νόηµα να εκτελεστεί Χρησιµοποιώντας downcasting σε µια περίπτωση όπου δεν έχει νόηµα δενπαράγειrun-time error 25 Υπόδειξη: Έλεγχος εάν το downcasting έχει νόηµα Το downcasting σε έναν τύπο έχει νόηµαεάντο αντικείµενο όπου το εφαρµόζουµεείναιµια instance αυτού του τύπου Αυτό ακριβώς ελέγχει ο τελεστής instanceof : object instanceof ClassName Θα επιστρέψει true εάν το object είναι τύπου ClassName Ειδικότερα, θα επιστρέψει true εάν το object είναι instance µιας οποιαδήποτε κλάσης απογόνου της ClassName 26 Πρώτη µατιά στη µέθοδο clone Κάθε αντικείµενο κληρονοµεί µια µέθοδο µεόνοµα clone από την κλάση Object Η µέθοδος clone δεν δέχεται παραµέτρους Υποτίθεται ότι επιστρέφει ένα deep copy του καλούντος αντικειµένου Όµως, ηκληρονοµούµενηέκδοσητηςµεθόδου δεν σχεδιάστηκε για να χρησιµοποιηθεί έτσι από όλες τις κλάσεις Κάθε κλάση πρέπει να την κάνει override µε µια πιο κατάλληλη έκδοση 27 9
10 Πρώτη µατιά στη µέθοδο clone Ηκεφαλίδατηςµεθόδου clone που ορίζεται στην κλάση Object είναι ως εξής: protected Object clone() Ηκεφαλίδαγιαµια µέθοδο clone που θα κάνει override τη µέθοδο clone της κλάσης Object µπορεί να διαφέρει ελαφρά από την παραπάνω κεφαλίδα Μια αλλαγή σε µια έκδοση µε περισσότερες ελευθερίες, όπως από protected σε public, είναι επιτρεπτή Αλλάζοντας τον επιστρεφόµενοτύποαπόobject σε τύπο της κλάσης που κλωνοποιείται, επιτρέπεται επειδή κάθε κλάση στη Java είναι κλάση-απόγονος της κλάσης Object Αυτό είναι ένα παράδειγµα τουcovariant return type 28 Πρώτη µατιά στη µέθοδο clone Εάν µια κλάση έχει έναν copy constructor, η µέθοδος clone για την κλάση αυτή µπορεί να χρησιµοποιήσειτον copy constructor για να δηµιουργήσει ένα αντίγραφο που θα επιστρέφεται από τη µέθοδο clone public Sale clone() return new Sale(this); κι άλλο παράδειγµα: public DiscountSale clone() return new DiscountSale(this); 29 Παγίδα: Μερικές φορές ο επιστρεφόµενος τύπος της µεθόδου clone είναι Object Πριν από την έκδοση 5.0, η Java δεν επέτρεπε covariant return types Εποµένως, η µέθοδος clone όλων των κλάσεων έχουν το Object ως επιστρεφόµενο τύπο Αφού ο επιστρεφόµενος τύπος της µεθόδου clone για την κλάση Object είναι ένα αντικείµενο Object, ο επιστρεφόµενος τύπος για την overriding clone µέθοδο οποιασδήποτε άλλης κλάσης είναι επίσης Object 30 10
11 Παγίδα: Μερικές φορές ο επιστρεφόµενος τύπος της µεθόδου clone είναι Object Πριν από την έκδοση Java 5.0, η µέθοδος clone για την κλάση Sale θα ήταν ως εξής: public Object clone() return new Sale(this); Εποµένως, στο αποτέλεσµα πρέπει πάντα να γίνεται type cast όταν χρησιµοποιούµε τη µέθοδο clone γραµµένη για µια παλιότερη έκδοση της Java Sale copy = (Sale)original.clone(); 31 Παγίδα: Μερικές φορές ο επιστρεφόµενος τύπος της µεθόδου clone είναι Object Είναι έγκυρο να χρησιµοποιούµετοobject ως επιστρεφόµενο τύπο για µια µέθοδο clone, ακόµα και κλάσεις που ορίζονται στην έκδοση 5.0 της Java Όταν υπάρχουν αµφιβολίες, δεν είναι εσφαλµένο να περιλαµβάνουµετοtype cast Για παράδειγµα, το επόµενο είναι έγκυρο για τη µέθοδο clone για την κλάση Sale: Sale copy = original.clone(); Όµως, προσθέτοντας το επόµενο type cast δεν δηµιουργεί προβλήµατα: Sale copy = (Sale)original.clone(); 32 Παγίδα: Περιορισµοί των Copy Constructors Παρόλο που ο copy constructor και η µέθοδος clone για µια κλάση εµφανίζονται να κάνουν το ίδιο πράγµα, υπάρχουν περιπτώσεις όπου µόνο η clone θα δουλέψει Για παράδειγµα, δεδοµένης µια µεθόδου badcopy στην κλάση Sale που αντιγράφει έναν πίνακα από sales Εάν αυτός ο πίνακας από sales περιέχει αντικείµενο από µια παραγόµενη κλάση της Sale (δηλ., DiscountSale), τότε το αντίγραφο θα είναι απλώς sale, όχι ένα πραγµατικό αντίγραφο b[i] = new Sale(a[i]); //plain Sale object 33 11
12 Παγίδα: Περιορισµοί των Copy Constructors Όµως, εάν χρησιµοποιηθεί η µέθοδος clone αντί για τον copy constructor, τότε (εξαιτίας του late binding) δηµιουργείται ένα πραγµατικό αντίγραφο, ακόµα καιγια αντικείµενα µιας παραγόµενης κλάσης (δηλ., DiscountSale): b[i] = (a[i].clone());//discountsale object Ο λόγος που αυτό δουλεύει είναι εξαιτίας του ότι η µέθοδος clone έχει το ίδιο όνοµα σεόλεςτιςκλάσεις, και ο πολυµορφισµός δουλεύει µεονόµατα µεθόδων Οι copy constructors µε όνοµα Sale και DiscountSale έχουν διαφορετικά ονόµατα, και ο πολυµορφισµός δεν δουλεύει µε µεθόδους µε διαφορετικά ονόµατα 34 Εισαγωγή στις Αφηρηµένες κλάσεις (Abstract classes) Θυµηθείτε, ηβασικήκλάσηemployee έχει δυο παραγόµενες κλάσεις, HourlyEmployee και SalariedEmployee Ηεπόµενη µέθοδος προστίθεται στην κλάση Employee Συγκρίνει δυο employees εάν έχουν το ίδιο µισθό: public boolean samepay(employee other) return(this.getpay() == other.getpay()); 35 Εισαγωγή στις Αφηρηµένες κλάσεις Υπάρχουν διάφορα προβλήµατα για τη µέθοδο αυτή: Η µέθοδος getpay ενεργοποιείται στη µέθοδος samepay Υπάρχουν µέθοδοι getpay σε κάθε µια από τις παραγόµενες κλάσεις εν υπάρχει µέθοδος getpay στην κλάση Employee, ούτε υπάρχει τρόπος να την ορίσουµε µε κάποιο λογικό τρόπο χωρίς να ξέρουµε εάνένας employee είναι hourly ή salaried 36 12
13 Εισαγωγή στις Αφηρηµένες κλάσεις Η ιδανική κατάσταση θα ήταν εάν υπήρχε τρόπος να: Αναβάλλουµετονορισµό τηςµεθόδου getpay µέχρι οτύποςτουemployee να γίνει γνωστός (δηλ., στις παραγόµενες κλάσεις) Αφήσουµε κάποιο είδος σηµείωσης στην κλάση Employee για να σηµατοδοτήσουµε αυτό Η Java το επιτρέπει αυτό µε τηχρήσητων αφηρηµένων κλάσεων (abstract classes) και αφηρηµένων µεθόδων (abstract methods) 37 Εισαγωγή στις Αφηρηµένες κλάσεις Γιανααναβάλλουµε τον ορισµό τηςµεθόδου, η Java επιτρέπει να δηλωθεί µια αφηρηµένη µέθοδος (abstract method) Μια abstract method έχει κεφαλίδα, αλλά δεν έχει σώµα Το σώµα τηςµεθόδου ορίζεται στις παραγόµενες κλάσεις Ηκλάσηπουπεριέχειµια abstract method αποκαλείται αφηρηµένη κλάση (abstract class) 38 Η έννοια της Abstract µεθόδου Μια abstract method είναι όπως ένας placeholder για µια µέθοδο που θα οριστεί πλήρως σε µια κλάση απόγονο Έχει πλήρη κεφαλίδα, στην οποία έχει προστεθεί ο modifier abstract εν µπορεί να είναι private εν έχει σώµα, και τελειώνει µεέναsemicolon αντί για το σώµατης public abstract double getpay(); public abstract void doit(int count); 39 13
14 Η έννοια της Abstract κλάσης Μια κλάση που περιλαµβάνει µια τουλάχιστον abstract method αποκαλείται abstract class Μια abstract class πρέπει να περιλαµβάνει τον modifier abstract στην κεφαλίδα της: public abstract class Employee private instancevariables;... public abstract double getpay(); Η έννοια της Abstract κλάσης Μια abstract µπορεί να περιλαµβάνει οσεσδήποτε abstract και/ή πλήρως ορισµένες µεθόδους Εάν µια παραγόµενη κλάση µιας abstract class προσθέσει στις ή δεν ορίσει όλες τις abstract methods, τότε είναι και αυτή abstract, και πρέπει να προσθέτουµετονmodifier abstract Μια κλάση που δεν έχει abstract µεθόδους αποκαλείται concrete class 41 Παγίδα: εν επιτρέπεται η δηµιουργία αντικειµένων µιας αφηρηµένης κλάσης Μια abstract κλάση µπορεί να χρησιµοποιηθεί µόνο για να παράξουµε άλλες πιο εξειδικευµένες κλάσεις Ένας constructor µιας abstract class δεν µπορεί να χρησιµοποιηθεί για να δηµιουργήσουµε ένα αντικείµενο µιας abstract class Όµως, ο constructor µιας παραγόµενης κλάσης θα πρέπει να περιλαµβάνει µια ενεργοποίηση του constructor της abstract class µετηµορφή του super 42 14
15 Υπόδειξη: Μια αφηρηµένη κλάση είναι ένας Τύπος δεδοµένων Παρόλο που ένα αντικείµενο µιας abstract class δεν µπορεί να δηµιουργηθεί, είναι απολύτως έγκυρο να έχουµε µια παράµετρο τύπου abstract class Αυτόκαθιστάδυνατόναενσωµατώσουµε ένα αντικείµενο που ανήκει σε µια οποιαδήποτε κλάση απόγονο της abstract κλάσης Είναι επίσης έγκυρο να χρησιµοποιήσουµε µια µεταβλητή τύπου abstract κλάσης, καθόσον ονοµατίζει αντικείµενα των concrete κλάσεων απογόνων 43 Στην επόµενη διάλεξη Εξαιρέσεις (Exceptions) 44 15
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 5η: 29/03/2006 & 30/03/2006
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Downcasting Πολυμορφισμός Late Binding
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Downcasting Πολυμορφισμός Late Binding tostring και equals Είπαμε ότι η Java για κάθε αντικείμενο «περιμένει» να δει τις μεθόδους tostring και
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 8η: 10/05/2006 & 11/05/2006
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Late Binding Αφηρημένες κλάσεις Interfaces διεπαφές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Late Binding Αφηρημένες κλάσεις Interfaces διεπαφές Κληρονομικότητα HourlyEmployee hours wagerate getpay tostring Employee name hiringdate getname
Αντικειµενοστραφής Προγραµµατισµός
Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιεπαφές και Εσωτερικές κλάσεις Interfaces and Inner Classes. ιεπαφές - Interfaces
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 8η: 10/05/2006 & 11/05/2006
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Κλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance)
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 9: Κληρονομικότητα (Inheritance) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 9 Κληρονομικότητα (Inheritance) Υπάρχουν κλάσεις που
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Πολυμορφισμός Late Binding Αφηρημένες κλάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Πολυμορφισμός Late Binding Αφηρημένες κλάσεις Κληρονομικότητα Η κληρονομικότητα είναι κεντρική έννοια στον αντικειμενοστραφή προγραμματισμό.
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Πολυμορφισμός Late Binding
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Πολυμορφισμός Late Binding Κληρονομικότητα Η κληρονομικότητα είναι κεντρική έννοια στον αντικειμενοστραφή προγραμματισμό. Η ιδέα είναι να ορίσουμε
Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα
Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods
(Object Oriented Programming) Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος
Αντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1
Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί
Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:
Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12
Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Αυτό-αξιολόγηση 1η: 08/02/2006 1
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 Σχεδίαση-Ανάπτυξη
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
Εισαγωγή στον Προγ/μό Η/Υ
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός
public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Βασικά της γλώσσας JAVA
17 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Παύλος Εφραιµίδης. Java. Κληρονοµικότητα
κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά
Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Ανάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee
Μία εταιρεία πληρώνει τους εργαζόμενους της σε εβδομαδιαία βάση. Οι αποδοχές των εργαζόμενων υπολογίζονται με τέσσερις διαφορετικούς τρόπους : Α) Μισθωτοί (SalariedEmployee), πληρώνονται με σταθερό ποσό
Σύνθεση και Κληρονομικότητα
Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση
Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java
Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD
(Object Oriented Programming) Διασυνδέσεις / Διεπαφές PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Διεπαφές/Διασυνδέσεις (Interfaces) 2 Διεπαφές/Διασυνδέσεις (Interfaces)
ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή Οποιαδήποτε κλάση
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία
Το πρόγραμμα 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 υποστηρίζει
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 13η: 30/08/2006 1 Συνδεδεµένες
Σύνθεση και Κληρονομικότητα
Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις Συλλογές Από το προηγούμενο lab Είχαμε την κλάση Document, και δύο παραγόμενες κλάσεις: TextFile, Email Document
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 12η: 30/08/2006 1 Generics
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι Μαθήματα από το lab Boolean μεταβλητές: Συνήθως τα ονόματα που δίνουμε στις boolean μεταβλητές περιγράφουν
Αρχικοποίηση Αντικειµένων & Κλάσεων στη Java Object Instantiation & Class Initialisation Κώστας Σαΐδης saiko@di.uoa.gr http://daemon.di.uoa.gr/daemon/issue4 Μάρτιος 2004 Η Αρχή είναι το ήµισυ του Παντός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Η ΜΕΤΑΒΛΗΤΗ THIS Η μεταβλητή this Η μεταβλητή (παράμετρος) this Μια κρυφή παράμετρος η οποία περνάει σε κάθε μέθοδο και κρατάει μια αναφορά
ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών
ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Από τη UML στον Κώδικα. Μέρος Α
Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον
02 Αντικειμενοστρεφής Προγραμματισμός
02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες
Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!
Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο Τελική Εξέταση
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Γενικευμένες κλάσεις Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία και τις μεθόδους
Λογισµικό (Software SW) Γλώσσες
Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής
Wrapper Classes, Abstract Classes and Interfaces
Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M8 Αντικειμενοστραφής Προγραμματισμός - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr
9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016
Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο 1 η Ενδιάμεση
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις Παράδειγμα κληρονομικότητας Έχουμε ένα σύστημα διαχείρισης εισιτηρίων μιας συναυλίας. Το κάθε εισιτήριο έχει
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Παράδειγμα χρήσης κληρονομικότητας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα χρήσης κληρονομικότητας Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία και τις μεθόδους
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies Μαθήματα από το εργαστήριο Όταν η εκφώνηση σας ζητάει να φτιάξετε μία μέθοδο που παίρνει
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Κληρονομικότητα (Inheritance) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κληρονομικότητα και Επαναχρησιμοποίηση - Υποκλάσεις/Υπερκλάσεις - Απόκρυψη ονομάτων - Το super, protected
Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Generics και η κλάση ArrayList. Εισαγωγή στα Generics
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 12η: 30/08/2006 1 Generics
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Ένα μεγάλο παράδειγμα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Ένα μεγάλο παράδειγμα. Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing ΕΛΕΓΧΟΣ ΙΣΟΤΗΤΑΣ Έλεγχος ισότητας Έχουμε πει ότι όταν ελέγχουμε ισότητα μεταξύ αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm