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